Xcode 8.2.1의 로컬 리포지토리 만 사용하고 있습니다. 그것은 1 인 쇼이고, 나는 코드 변경을하는 유일한 사람입니다.Xcode : GIT 서브 브랜치에 파일을 추가했습니다. 이제 "Tree Conflict"를 병합하려고합니다.
master
branch1
...
branch14
branch14.1
...
branch 14.13 //added lots of new code/classes
branch 14.13.NewCombatReports //refactor 1 class into 2
가 14.13에서 내가 엑스 코드의 "새 파일"옵션을 사용하여 새로운 클래스를 만들어 꽤 몇 가지 새로운 클래스를 추가 : 다음과 같이 몇 년 동안, 나는 GIT에서 하위 가지의 시리즈를 만들었습니다. 일단 기능이 생기면 14.13.NewCombatReports 하위 브랜치를 생성하여 큰 클래스 중 하나를 리팩터링하여 (코드의 큰 덩어리를 자체 클래스, 새로운 클래스, BattleManager.m/h로 분리).
내가 만족할 때 변경 사항을 적용한 다음 상위 분기로 병합을 시도했습니다.
하나 이상의 트리가 충돌하여 작업을 수행 할 수 없습니다.
On branch master.DevMain.14.13.newCombatReports Untracked files: (use "git add <file>..." to include in what will be committed) ../CloudKitHelperClass (xxxxxxxx's conflicted copy 2016-11-18).m ../yyyyyy.xcodeproj/project.xcworkspace/xcuserdata/thunk.xcuserdatad/.gitignore ../yyyyyy.xcodeproj/project.xcworkspace/xcuserdata/thunk.xcuserdatad/UserInterfaceState (xxxxxxxx's conflicted copy 2016-11-18).xcuserstate ../yyyyyy.xcodeproj/xcuserdata/thunk.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist nothing added to commit but untracked files present (use "git add" to track)
없음 : 파일 BattleManagerClass.h 및 BattleManagerClass.m 비슷한 SO 질문의 조언에 따라 트리 충돌
있었다, 나는 반환 BattleManager가있는 * 같은 디렉토리에 git status
을 실행 그 중 BattleManager 클래스와 관련된 것 같습니다. GIT에서 내가하고있는 것을 실제로 이해하지 않고 주위를 돌아 다니며 xcode 프로젝트에서 클래스를 제거하고 BattleManager 파일을 ~/tmp로 옮겼습니다. 나는 변경 사항을 적용한 다음 14.13의 나머지 변경 사항을 성공적으로 병합했습니다 .NewCombatReports는 14.13으로 다시 변경되었습니다. 이 시점에서 새로운 BattleManager 클래스를 다시 14.13에 추가하고 다시 빌드했습니다. 모든 것이 잘되었거나 그렇게 생각했습니다.
나중에 14.13을 14 개로 병합하려고하면 14.13 절에 추가 한 모든 단일 클래스 파일에 대해 불평하는 트리 충돌이 발생합니다.
그래서 근본적으로 잘못된 일을 한 것 같습니다. GIT는 순수한 새 파일을 포함하는 분기를 병합하려고 할 때 좋아하지 않습니다. 나는 아주 잘 GIT의 동작을 알지 못하고 이해하지 않는다 :
- 은 무엇 "트리 충돌"오류가 로컬 저장소의 맥락에서 나에게 말해하려고? 현재 개정판이 상충되는 부분을 이해하지 못합니다.
- 새 파일을 포함하는이 분기를 위쪽으로 병합 할 수 있도록 어떻게 수정해야합니까?
이 질문은 매우 유사한 것 같습니다 Xcode merge branch,remind tree conflict when add some new file. 이 주석은 The operation could not be performed because "PROJECTNAME" has one or more tree conflicts에 링크되어 있으며 로컬 버전과 서버 버전간에 디렉토리 구조를 조정하려고합니다. 내가 서버를 다루지 않기 때문에, 나는 그 충고를 적용하는 방법을 이해하지 못한다.
주의는 downvote를 설명하기 위해? – Thunk