IT

로컬 변경 사항을 유지하는 git pull

lottoking 2020. 7. 13. 07:48
반응형

로컬 변경 사항을 유지하는 git pull


업스트림 변경 사항이 있어도 특정 파일을 그대로 유지하면서 git 프로젝트를 안심하고 업데이트 (풀)하는 방법은 무엇입니까?

myrepo / 구성 / config.php

이 파일은 원격에서 변경되는 것이 아니라 git pull을 사용할 때 다른 모든 것이 업데이트되지 않는 파일은 변경되지 않는 것이 아니라는 것이 있습니까?

추신. git 기반 배포 펼쳐서 작성하기 때문에 내가 원하는 것을해야합니다. 구성 파일을 템플릿으로 설명 할 수 없습니다.

따라서 로컬로 변경된 내용을 잃지 않는 업데이트를 작성하는 방법이 필요합니다. 나는 다음과 같은 간단한 것을 원했습니다.

git assume-remote-unchanged file1
git assume-remote-unchanged file2

그때 git pull


Git 숨김을 기반으로하는 간단한 솔루션이 있습니다. 변경 한 내용을 모두 숨기고 모든 새로운 내용을 가져다 적용하십시오.

git stash
git pull
git stash pop

숨겨 팝에서 충돌이있을 수 있습니다. 당신이 묘사하는 경우에 실제로 충돌이 생길 것입니다 config.php. 그러나, 당신이 은닉에 넣은 것이 당신이 원하는 것임을 알기 때문에 갈등을 해결하는 것입니다. 이렇게하십시오 :

git checkout --theirs -- config.php

에 대부분의 저장소 풀러가 사용자 - 해야하는 파일이 정의 있으면 파일의 이름을 바꾸고에 config.php.template추가 config.php하십시오 .gitignore.


업데이트 : 메시지 그대로 질문에 대답하지만 KurzedMetal의 대답 은 실제로 당신이 원하는 생각 입니다.

가정 :

  1. 당신은 지점에있어 master
  2. 상류 지점 인 masterorigin
  3. 커밋되지 않은 변경 사항이 없습니다.

.... 할 수있는 일 :

# Do a pull as usual, but don't commit the result:
git pull --no-commit

# Overwrite config/config.php with the version that was there before the merge
# and also stage that version:
git checkout HEAD config/config.php

# Create the commit:
git commit -F .git/MERGE_MSG

자주 수행해야하는 경우 별명을 자주 사용할 수 있습니다. 커밋되지 않은 변경 사항이있는 경우 변경 사항이 취소 config/config.php됩니다.


rebase로 git pull을 시도 할 수도 있습니다.

git pull --rebase origin dev

참고 URL : https://stackoverflow.com/questions/10414769/git-pull-keeping-local-changes

반응형