development

자식 버전을 원격 버전으로 대체

big-blog 2020. 6. 27. 10:11
반응형

자식 버전을 원격 버전으로 대체


git에게 로컬 파일을 무시하고 병합하지 않고 충돌을 일으키지 않고 원격 지점에서 파일을 가져 오도록하려면 어떻게해야합니까?


이것이 가장 안전한 솔루션입니다.

git stash

이제 갈등에 대한 두려움없이 원하는 모든 것을 할 수 있습니다.

예를 들어 :

git checkout origin/master

마스터 브랜치에 원격 변경 사항을 포함 시키려면 다음을 수행하십시오.

git reset --hard origin/master

그러면 "master"분기가 "origin / master"를 가리 킵니다.


나는 다음과 같은 질문을 이해합니다 : 업스트림에서 하나의 파일 (또는 선택)의 내용을 완전히 바꾸고 싶습니다. 인덱스에 직접 영향을 미치지 않기를 원하므로 평소처럼 add + commit을 수행합니다.

간단히

git checkout remote/branch -- a/file b/another/file

광범위한 하위 트리에 대해이 작업을 수행하고 대신 인덱스에 직접 영향을 주려면

git read-tree remote/branch:subdir/

그런 다음 선택적으로 작업 사본을 업데이트하여 업데이트 할 수 있습니다

git checkout-index -u --force

예를 들어 테스트 목적으로 만 업데이트 한 파일을 잘못 저장했습니다. 그런 다음 "git status"를 실행하면 파일이 "Modified"로 표시되고 잘못된 단어가 나타납니다. 이전 버전을 원하고 계속 정상적으로 작동합니다.

이 시나리오에서는 다음 명령을 실행할 수 있습니다.

git checkout -- path/filename

다음과 같이 "마스터"(원격 / 원본 저장소)에서 원격 파일을 체크 아웃합니다.

git checkout master <FileWithPath>

예 : git checkout master components / indexTest.html


옵션과 함께 -s또는 --strategy옵션을 사용하십시오 -X. 특정 질문에서 모든 원격 파일을 유지하고 동일한 이름의 로컬 파일을 바꾸려고합니다.

원격 버전과의 충돌 교체

git merge -s recursive -Xtheirs upstream/master  

충돌하는 모든 파일의 원격 저장소 버전을 사용합니다.

로컬 버전과의 충돌 교체

git merge -s recursive -Xours upstream/master

충돌하는 모든 파일의 로컬 저장소 버전을 사용합니다.

참고 URL : https://stackoverflow.com/questions/5288172/git-replace-local-version-with-remote-version

반응형