[git] 병합으로 로컬 변경 사항을 덮어 쓰는 ‘git pull’오류를 어떻게 무시합니까?

Git pull에서 다음 오류 메시지를 어떻게 무시합니까?

다음 파일에 대한 로컬 변경 사항은 병합으로 덮어 씁니다.

덮어 쓰 려면 어떻게 해야합니까?

과 같은 것을 시도 git pull -f했지만 아무것도 작동하지 않습니다.

분명히하기 위해 모든 변경이 아니라 특정 변경 사항 만 덮어 쓰고 싶습니다.



답변

작업 복사본에서 git에 의해 추적되지 않은 파일을 포함하여 모든 로컬 변경 사항을 제거하려면 간단히 숨기십시오.

git stash push --include-untracked

더 이상 필요하지 않으면 이제 그 숨겨 놓을 수 있습니다.

git stash drop

이미 준비한 변경 사항을 숨기지 않으려면 (예 : with) git add옵션을 추가하십시오 --keep-index. 그러나 단계적 변경 사항이 업스트림 변경 사항과 충돌하는 경우 여전히 병합을 방해합니다.


로컬 변경 사항의 특정 부분 만 겹쳐 쓰려면 두 가지 가능성이 있습니다.

  1. 덮어 쓰고 싶지 않은 모든 것을 커밋하고 나머지 방법은 위의 방법을 사용하십시오.

  2. git checkout path/to/file/to/revert덮어 쓰려는 변경에 사용하십시오 . 를 통해 파일이 준비되지 않았는지 확인하십시오 git reset HEAD path/to/file/to/revert.


답변

다른 두 가지 답변의 도움으로 직접 해결책을 찾았습니다.

git checkout HEAD^ file/to/overwrite
git pull


답변

이것은 모든 로컬 변경 사항을 무시하고 ID를 요구하지 않습니다.

git reset --hard
git pull


답변

다음은 단계별 변경 사항을 버리는 솔루션입니다.

git reset file/to/overwrite
git checkout file/to/overwrite


답변

병합하기 전에 변경 사항을 커밋하거나 숨길 수 있습니다.

  1. git stash save
  2. git merge origin/master
  3. git stash pop

답변

하나의 파일에서 로컬 변경 사항을 삭제하려면 다음을 수행하십시오.

git checkout -- <file>

그런 다음 최신 버전으로 파일을 덮어 쓸 수 있습니다.

git pull


답변

저장소에 다음에서 제거 된 파일이 몇 개 포함 된 경우 master:

  1. git checkout master
  2. git fetch origin
  3. git reset --hard origin/master
  4. git checkout -b newbranch