태그 보관물: rebase

rebase

자식에서 ‘둘 다 추가’병합 충돌을 해결 하시겠습니까? 동일한 파일 이름이 내 지점과 rebasing하는

나는 git에서 rebasing하고 있는데, 하나의 충돌은 ‘둘 다 추가되었습니다’입니다. 즉, 정확히 동일한 파일 이름이 내 지점과 rebasing하는 지점에서 독립적으로 추가되었습니다. git status나에게 말한다 :

# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#       both added:         src/MyFile.cs

내 질문은 어떻게 해결할 수 있습니까? 병합 도구를 사용해야합니까, 아니면 명령 줄에서 바로 수행 할 수있는 방법이 있습니까? 그렇다면 git rm src/MyFile.csgit은 제거하려는 파일 버전과 유지할 파일 버전을 어떻게 알 수 있습니까?



답변

당신이 사용하는 경우 git rmgit 하면 인덱스에서 해당 경로의 모든 버전을 제거하므로 해결 작업으로 버전이 없어집니다.

git checkout --ours src/MyFile.cs리베이스 할 지점 git checkout --theirs src/MyFile.cs에서 버전을 선택 하거나 리베이스 할 지점에서 버전을 선택할 수 있습니다 .

블렌드를 원하면 병합 도구를 사용하거나 수동으로 편집해야합니다.


답변

때로는 파일의 출처를 식별하기 위해 --theirs--ours옵션을 사용하여 혼동 되는 경우가 있습니다. 대부분의 시간은 내가 참조하는 지점에있을 것입니다 --theirs.

당신은 또한 사용할 수 있습니다 git checkout <tree-ish> -- src/MyFile.cs

가 어디 <tree-ish>분기 이름 중 하나를 교체하거나 할 수 커밋 ID를 사용하면 유지하고자하는 파일이 포함되어 있습니다.

git checkout 6a363d8 -- src/MyFile.cs

git checkout my_branch -- src/MyFile.cs

git checkout HEAD -- src/MyFile.cs


답변

할 때 …

git checkout --ours someFile

자식 상태를 수행 할 때 아무것도하지 않은 것처럼 보일 수 있습니다.

나중에이 작업을 수행해야합니다.

git add someFile
git status


답변