git pull은 로컬에서 수정된 코드를 덮어쓰지만, 로컬 코드와 원격 코드 사이에 충돌이 있는 경우에만 가능합니다. 로컬 수정 사항을 덮어쓰는 것을 방지하기 위해 로컬 수정 사항을 제출하거나, 로컬 수정 사항을 숨기거나, 자동 병합을 비활성화할 수 있습니다.
1. git pull의 역할
git pull이 로컬 수정 사항을 덮어쓸지 여부를 심도 있게 논의하기 전에 먼저 git pull의 역할을 이해해야 합니다.
Git pull은 git fetch와 git merge 두 명령의 조합으로, 원격 창고에서 최신 코드를 가져온 다음 로컬 코드와 병합합니다.
2. git pull의 동작
git pull의 실제 동작은 현재 git 구성 및 코드 충돌에 따라 다릅니다.
1. 기본값
기본적으로 로컬 코드와 원격 코드 사이에 충돌이 없으면 git pull은 코드 병합을 성공적으로 수행하고 로컬 수정 사항을 덮어쓰지 않습니다.
git pull
2. 원격 코드 충돌
원격 창고의 코드가 로컬 코드와 충돌하면 git pull이 자동으로 차이점을 병합하려고 시도하지만 성공할 것이라는 보장은 없습니다.
자동 병합이 실패하면 git pull은 변경 사항을 커밋하기 전에 충돌을 수동으로 해결하라는 메시지를 표시합니다.
git pull Auto-merging file1.txt CONFLICT (content): Merge conflict in file1.txt Automatic merge failed; fix conflicts and then commit the result.
3. 로컬 코드 충돌
코드를 로컬에서 수정했지만 제출하지 않으면 git pull이 로컬 수정 사항을 덮어씁니다.
이 경우 git pull은 로컬 충돌이 있음을 알리는 메시지를 표시하므로 먼저 로컬 수정 사항을 제출하거나 로컬 수정 사항을 숨긴 다음 코드 병합을 수행할 수 있습니다.
git pull error: Your local changes to file1.txt would be overwritten by merge. Aborting. Please commit your changes or stash them before you merge.
3. 로컬 수정 사항 덮어쓰기 방지
로컬 수정 사항 덮어쓰기를 방지하려면 다음 방법을 사용할 수 있습니다.
1. 로컬 수정 사항 제출
권장 방법은 로컬 수정 사항을 제출한 다음 코드를 병합하는 것입니다. .
git add . git commit -m "my local changes" git pull
2. 로컬 수정 사항을 Stash
로컬 수정 사항을 제출하지 않으려면 git stash 명령을 사용하여 로컬 수정 사항을 캐시할 수 있습니다.
git stash save "my local changes" git pull git stash pop
3. 자동 병합은 금지됩니다
경우에 따라 자동 병합으로 인해 예상치 못한 결과가 발생할 수 있습니다. git pull 명령을 실행할 때 자동 병합을 강제로 비활성화할 수 있습니다.
git pull --no-merge
4. 요약
git pull은 로컬에서 수정된 코드를 덮어쓰지만, 로컬 코드와 원격 코드 사이에 충돌이 있는 경우에만 가능합니다.
로컬 수정 사항을 덮어쓰는 것을 방지하기 위해 로컬 수정 사항을 제출하거나 로컬 수정 사항을 숨기거나 자동 병합을 비활성화할 수 있습니다.
위 내용은 git pull이 로컬에서 수정된 코드를 덮어쓰나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!