2010-11-23 4 views
2

gitで「スパゲッティ」を少しマージしたようです。 alt textGit mergeスパゲッティ - それを修正するには?

私たちはこれに新しいものと基本的には次の支店

Master A - B - C 
      __// 
Core  / A - B - C - D - E - F 
      | 
iPhone A - B - C 

を持っていると思います。しかし、いくつかの点で、我々はコアにマスターを合併ようにそれはマスターにコア、その後に戻っ習得、その後、らしいですコアは..何が/どのように/これはどうして起こったのかわからないけど、あまりにも邪魔することなく、これを軌道に戻すためにいくつかの助けが大好きです!

何か助けていただければ幸いです。

+0

あなたは明確にすることができます:マスターのABCはコアのコミットABCDEFにわずかに関連していますが、それらがiPhone上のABCに祖先以上に関係しているかどうかは不明です...コアの名前を変更する必要がありますHIJKLMとiPhoneがTUVをコミットします。また、Master/CからCore/Aへのスラッシュは困惑しています。意図的な後方運動ですか?実際にiPhoneブランチに問題はありますか?実際にMaster/AとCore/AとiPhone/Aを同じコミットにするには、/ Bはどうしますか?そして、必要なダースコミットは、表示されている23のコミットとどのように関係していますか? –

+0

私たちは3つのブランチを使いたいと思っていました。 iphone開発を保管するiPhoneブランチ、およびアプリケーションのコアを格納する広告コアブランチを提供します。コードをリリースする準備ができたら、両方のブランチをマスターにマージして、マスターで新しいバージョンを取得します。私はちょうどgitを学んでいるのかもしれません。 !助けてくれてありがとう。 – Martin

答えて

1

"Core"ブランチを線形化したいのですか?なぜちょうどgit rebaseそれはない?

Master A - B - C 
      __// 
Core  / D - E - F - G - H - I 
      | 
iPhone J - K - L 


git checkout core 
git rebase C [where "C" is the sha1 of C] 

競合が発生した場合は、git rebase --abortを元の状態に戻します。

+0

ああ!私はrebaseについて聞いたことがありません。これを調べます。 – Martin

+0

githubにプッシュするときに '--force'を追加する必要があるかもしれません。あなたは歴史を書き換えるために必要です。 –

+0

あなたが 'push -f'について話しているので、git-rebaseのmanページの" upstream rebaseからの回復 "のセクションを読んで、他人が回復するために何をしなければならないかを理解してください。 – Cascabel

関連する問題