Git 푸시 --force-with-lease 대 Git 푸시 --force
이 기사에서는 git push --force-with-lease
명령과 git push --force
명령의 차이점에 대해 설명합니다. 일반적으로 git push
명령을 사용하여 로컬 변경 사항을 원격 저장소에 게시합니다.
계속해서 이러한 명령을 살펴보겠습니다.
git push --force
명령
로컬 변경 사항을 원격 저장소에 게시할 때 다음을 실행합니다.
$ git push origin
그러나 여러 개발자가 원격 저장소를 공유하고 변경 사항을 원격 저장소에 게시하는 경우 Git에서 푸시를 거부할 수 있습니다.
Git이 커밋을 게시하도록 하려면 아래와 같이 git push
명령에 --force
플래그를 추가합니다.
$ git push --force origin
이 명령을 사용할 때의 단점은 다른 개발자가 원격 저장소로 푸시한 변경 사항을 고려하지 않는다는 것입니다. 이 명령은 로컬 리포지토리의 상태에 따라 리포지토리를 재정의합니다.
이는 프로젝트 타임라인을 엉망으로 만들 수 있으므로 위험할 수 있습니다. 변경 사항을 원격 리포지토리에 푸시하고 다른 개발자가 변경한 내용을 유지하려면 다음과 같이 하십시오.
git push --force-with-lease
명령
이 명령은 여러 개발자가 원격 저장소를 공유할 때 유용합니다. 다른 개발자가 푸시한 변경 사항을 삭제하지 않도록 변경 사항을 게시할 때 사용합니다.
$ git push --force-with-lease origin
예를 들어 보겠습니다. 다음은 원격 저장소의 현재 상태입니다.
README.md
파일을 약간 변경하고 GitHub에 있는 동안 변경 사항을 커밋합니다. 약술된 커밋 ID 097ab8b
를 확인하십시오.
이제 어떻게 생겼는지 보여줍니다.
커밋 ID ba29c53
을 확인합니다.
이제 컴퓨터에서 README.md
파일을 열고 추가로 편집하고 변경 사항을 커밋하고 git push
를 시도합니다.
커밋 기록이 다르기 때문에 Git에서 푸시 시도를 거부했습니다. git push --force
명령을 실행할 수 있지만 이는 GitHub에서 변경한 사항을 무시합니다.
아래와 같이 git push --force-with-lease
를 수행할 수 있습니다.
$ git push --force-with-lease
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 314 bytes | 314.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To https://github.com/Wachira11ke/Delftscopetech.git
+ b7b8e6a...8ddd086 main -> main (forced update)
git push --force-with-lease
와 git push --force
의 차이점은 결과입니다. 임대
로 변경 사항을 푸시하면 다른 개발자가 푸시한 변경 사항을 무시하는 것을 방지할 수 있습니다.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn