Git 푸시 --force-with-lease 대 Git 푸시 --force

John Wachira 2023년1월30일
  1. git push --force 명령
  2. git push --force-with-lease 명령
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-leasegit push --force의 차이점은 결과입니다. 임대로 변경 사항을 푸시하면 다른 개발자가 푸시한 변경 사항을 무시하는 것을 방지할 수 있습니다.

작가: John Wachira
John Wachira avatar John Wachira avatar

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

관련 문장 - Git Push