충돌하는 분기가 있습니다. branch2는 branch1에서 분기되었습니다.
branch2
current를 기반으로 할 때 branch1
충돌을 해결하면서 “그들”(즉, ) 파일 의 일부 를 그대로 사용하기로 결정합니다 branch1
. 어떻게합니까?
나는 시도했다 :
git checkout branch1:foo/bar.java
fatal: reference is not a tree: TS-modules-tmp:foo/bar.java
git checkout refs/heads/branch1:foo/bar.java
fatal: reference is not a tree: refs/heads/TS-modules-tmp:foo/bar.java
답변
사용하고 싶은 것 :
git checkout --ours foo/bar.java
git add foo/bar.java
당신이 지점 리베이스 경우 feature_x
에 대하여 master
(실행 즉 git rebase master
분기 동안을 feature_x
), 리베이스 과정 ours
을 의미 master
하고 theirs
에 feature_x
.
git-rebase 문서 에서 지적했듯이 :
리베이스 병합은 분기 위의 작업 분기에서 각 커밋을 재생하여 작동합니다. 이로 인해, 병합 충돌이 발생했을 때, 우리의 것으로보고 된 측면은 <upstream>부터 시작하여 지금까지의 리베이스 된 시리즈이고 그들의 분기는 작업 브랜치입니다. 다시 말해, 측면이 서로 바뀝니다.
자세한 내용 은이 스레드를 참조하십시오 .
답변
다른 브랜치에서 특정 파일을 가져 오려면
git checkout branch1 -- filenamefoo.txt
하나의 브랜치에서 현재 트리로 파일 버전을 가져옵니다.