나는 차이점을 이해하려고 노력하고있다.
git push --force
과
git push --force-with-lease
내 추측은 원격에 로컬 분기가없는 커밋이없는 경우 후자가 원격으로 푸시 한다는 것입니다 .
--force-with-lease
최신 CPU의 비교 및 스왑 명령의 구현과 유사합니다. 스왑을 원하는 사람은 예상 값과 새 값을 제공합니다. 스왑을 수행하는 시스템은 예상 값을 실제 현재 값과 비교하고 둘이 동일한 경우에만 스왑을 수행합니다. 로 git push
예상 값은 원격 추적 이름에있는 값입니다. 예를 들어, 원하는 새 값과 함께 git push --force-with-lease origin X
자신 origin/X
을 보냅니다 . origin
Git은 교환 여부를 알려줍니다.
origin
교환이 완료되면 완료된 것입니다. 그렇지 않은 경우 실행 git fetch origin
하여 새 현재 값 을 선택하고 필요한 경우 변경 사항을 재 작업 한 후 임대와 비교 및 스왑을 다시 실행하여 다시 시도 할 수 있습니다.
git help push
의 목적을 설명하는 유스 케이스가 있습니다 (기본적으로 누군가가 방금 밀어 낸 변경 사항을 휴지통에 버리지 않도록). 약간 불분명 한 것은 원격 추적 지점의 작동 방식입니다. 그러나 아마도 일반적으로 지난 번에fetch
또는pull
새로운 커밋없이 마지막으로 어떻게 보 였는지 정확하게 볼 필요 가 있습니다.