로컬 변경 사항을 유지하는 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의 대답 은 실제로 당신이 원하는 생각 입니다.
가정 :
- 당신은 지점에있어
master
- 상류 지점 인
master
에origin
- 커밋되지 않은 변경 사항이 없습니다.
.... 할 수있는 일 :
# 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
'IT' 카테고리의 다른 글
CSS 선택기에서 특정 클래스 이름을 제외하는 방법은 무엇입니까? (0) | 2020.07.13 |
---|---|
스칼라에서`#`연산자는 무엇을 의미합니까? (0) | 2020.07.13 |
Arrays.asList () 대 Collections.singletonList () (0) | 2020.07.13 |
왜 우리는 추상 팩토리 디자인 패턴이 필요합니까? (0) | 2020.07.13 |
C #에서 바이트 []에서 IntPtr을 얻는 방법 (0) | 2020.07.12 |