2017-02-05 6 views
0

Xcode 8.2.1でローカルリポジトリを使用しています。それはワンマンショーだ、私はコードを変更する唯一の人だ。Xcode:GITサブブランチにファイルを追加しました。上にマージしようとしました。 "ツリーの衝突"

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で、私はXcodeのの「新規ファイル」オプションを使用して新しいクラスを作成することによって、かなりの数の新しいクラスを追加しました:次のように長年にわたり、私はGITにサブブランチのシリーズを作成しました。私は物事が機能したら、大きなブランチの1つをリファクタリングする(14.13.NewCombatReportsというサブブランチを作成しました。大きなチャンクを独自のクラス、BattleManager.m/hに分ける)。

私が満足したとき、私は変更をコミットしてから親ブランチにマージしようとしました。

ツリーの競合が1つ以上発生したため、操作を実行できませんでした。

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の仕組みを知らないと理解していない:ローカルリポジトリの文脈の中で私を教えしようとしている「木の競合」エラーです

  1. 何?私の現在のリビジョンが矛盾しているものがわかりません。
  2. このファイルを含むこのブランチを上向きにマージするにはどうすればよいですか?

この質問は非常によく似ています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にリンクしています。このバージョンでは、ローカルとサーバーのバージョン間でディレクトリ構造を調整しようとしています。私はサーバーを扱っていないので、そのアドバイスをどのように適用するのか分かりません。

+0

気をつけて説明してください。 – Thunk

答えて

1

xcodeでgit操作を試みると、私は奇妙な失敗を経験しました。

xcodeを終了して再起動するだけで、プロジェクトを終了すると私にとって問題が解決されました。

gui gitツールの1つを使用すると、時には助けになることもあります。いくつかのオプションがありますが、私はgitboxを使いアプリストアから入手できます。マージを強制するオプションがあり、問題を解決する可能性があります。

+0

興味深い。私は再起動し、gitboxを起動し、コミットはすべて合理的に見えました。私は再びxcodeを再起動し、マージは成功しました。 – Thunk

+0

今後の訪問者の場合:サブブランチ内に新しいファイルを追加するたびに、Xcodeを終了して再起動するまで上記のエラーが発生するようです。その後、すべてが順調で、私は親に戻って合併することができます。 – Thunk

関連する問題