Git 밀어넣기 힘 변경
이 기사에서는 로컬 변경 사항을 Git의 원격 리포지토리에 강제로 푸시하는 방법에 대해 설명합니다.
Git은 원격 리포지토리의 변경 사항의 하위 항목인 로컬 변경 사항을 원격 리포지토리에 푸시하는 것만 허용합니다.
어떤 경우에는 그렇지 않은 변경 사항(즉, 원격 저장소의 변경 사항에 선행할 수 있는 변경 사항)을 푸시할 수 있습니다.
이러한 경우 --force
옵션과 함께 git push
명령을 사용해야 합니다.
이제 이를 예를 들어 설명하겠습니다.
git push --force
를 사용하여 Git의 원격 리포지토리에서 로컬 변경 사항을 강제로 푸시
때때로 협업 개발 환경에서 작업할 때 원격 리포지토리에 일부 변경 사항을 푸시하는 상황이 발생합니다.
이제 이러한 변경 사항이 더 이상 관련이 없다고 결정하고 새로운 로컬 변경 사항을 원격 리포지토리에 푸시하려고 합니다.
또한 일부 다른 팀 구성원은 이전에 푸시한 원격 저장소 변경 사항을 이미 가져왔을 수 있습니다. 그리고 그들 위에서 일했을 수도 있습니다. 결과적으로 그들은 변경 사항을 원격 저장소에 푸시했을 수 있습니다.
Git은 일반적으로 새로운 로컬 변경 사항을 푸시하기 전에 원격 리포지토리에서 다른 팀 구성원이 푸시했을 수 있는 변경 사항을 먼저 가져와야 합니다.
따라서 이러한 경우 --force
옵션과 함께 git push
명령을 사용해야 합니다. 명령 구문은 git push origin <branch_name> --force
입니다.
main
이라는 브랜치가 있다고 가정합니다. 그런 다음 변경 사항을 강제로 푸시하기 위해 다음과 같이 합니다.
$ git push origin main --force
주의: 이는 이전 푸시 이후 발생할 수 있는 원격 저장소에 이미 존재하는 변경 사항을 덮어쓰는 효과가 있습니다.
따라서 팀 구성원이 원격 저장소에서 이미 수행한 변경 사항을 덮어씁니다.
git push
명령 즉, 다른 옵션이 있습니다. --force-with-lease
. git push
와 함께 이 옵션을 사용하면 오류 메시지가 인쇄되고 원격 저장소에 이미 일부 변경 사항이 푸시된 경우 Git은 변경 사항을 푸시하지 않습니다.
이 --force-with-lease
옵션을 사용하면 다른 팀 구성원의 변경 사항을 덮어쓰지 않습니다.