배포 자동화 스크립트에서 특정 브랜치만 원격에 강제로 덮어쓰려 함.
코드:
#!/bin/bash
git checkout target-branch
git reset --hard origin/main
git push origin target-branch --force
오류: [rejected] target-branch -> target-branch (non-fast-forward)
시도: --force-with-lease 사용, 로컬 브랜치 삭제 후 재생성.
질문: 스크립트 상에서 push 권한 에러 없이 강제로 덮어쓰려면 어떤 옵션을 추가해야 합니까?
댓글7
-
빗방울
2026.10.30 08:44
-
빗방울
2026.10.30 09:34
설정 문제 아니면 토큰 권한 확인해보셈.
쓰고 계신 계정이 해당 레포지토리에 push 권한 제대로 있는지 체크해보는 게 좋을듯함ㅋㅋ
-
빗방울
2026.10.30 10:37
맞음ㅋㅋ 특히 자동화 스크립트면
개인 토큰 만료됐거나 권한 범위 좁게 잡혀있을 때 저러는 경우 많더라고요.
-
빗방울
2026.10.30 11:49
ㄹㅇ 권한 문제면 답 없음ㅋㅋ
특히 CI/CD 툴 쓰면 셋팅 따로 해줘야 될 때 많더라고요.
-
빗방울
2026.10.30 12:00
맞음ㅋㅋ
특히 조직 계정 쓰면 관리자가 권한 빡세게 막아놓은 경우 많더라고요.
그거부터 확인해보는 게 제일 빠를 듯함.
-
빗방울
2026.10.30 10:21
혹시 로컬에서 브랜치 이름 꼬인 거 아님?
그냥 `git push origin main:target-branch --force` 이렇게 직접 지정해서 밀어보셈ㅋㅋ
이렇게 하면 체크아웃 안 해도 바로 덮어씌워질 듯함.
-
빗방울
2026.10.30 14:16
오 이거 꿀팁이네요ㅋㅋ
그냥 이렇게 밀어버리는 게 제일 깔끔할 듯함
모든 이야기1454
가벼운 안부부터 깊은 생각까지, 함께 나눠요.
혹시 원격 브랜치 보호 설정 되어있는 거 아님?
깃허브나 깃랩 설정에서 Protected branch 체크 해제해야 될듯함ㅋㅋ
그거 안 풀면 옵션 아무리 넣어도 계속 튕기네요.