나는 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.cs
git은 제거하려는 파일 버전과 유지할 파일 버전을 어떻게 알 수 있습니까?
답변
당신이 사용하는 경우 git rm
git 하면 인덱스에서 해당 경로의 모든 버전을 제거하므로 해결 작업으로 버전이 없어집니다.
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