2013-02-28 11 views
11

私たちのgitのプロセスは、私たちのmasterブランチに定期的にマージされるので、変更を最新の機能ブランチにマージすることができます。あるブランチから別のブランチへの最新のマージの段階から、解決策が明確ではない問題にぶち当たっています。なぜマージベースエラーに従ってコミットしないのですか?

私たちは19個のサブモジュールを持つリポジトリを持っています。すべてのサブモジュールをマージすると、ファイルが変更されたり、競合が発生したりすることが予想されます。ルートリポジトリをマージすると、すべてが南になり、 (問題のみを指摘するように編集されています)。

warning: Failed to merge submodule projects/foo1 (commits don't follow merge-base) 
warning: Failed to merge submodule projects/foo2 (commits don't follow merge-base) 
warning: Failed to merge submodule projects/foo3 (not fast-forward) 

Found a possible merge resolution for the submodule: 
931a61165f3b2079523a122477fa5f44c123406d: Comment of last merge 

If this is correct simply add it to the index for example by using: 

git update-index --cacheinfo 160000 931a61165f3b2079523a122477fa5f44c123406d "projects/foo3" 

which will accept this suggestion. 

ここで、提案されたgit update-indexコマンドを実行できます。そのサブモジュールではgitが幸せになるでしょうが、これまで実行する必要はありませんでした。ヘルプは表示されないfoo1とfoo2のサブモジュールを見ると、問題は本当に悪いです。

+0

サブモジュールを変更するたびに、親リポジトリをコミットしてプッシュしましたか? – VonC

+0

マージする前に、両方のツリーは完全に機能していますが、サブモジュール内のコミットに失敗しても問題ありません。それはあなたが意味することですか? – Peter

+0

私は、サブモジュールを変更するときに、サブモジュールのSHA1が変更されているため、サブモジュールを変更するときにコミットしてプッシュし、次に親に行きコミットしてプッシュする必要があることを意味します。私はあなたがそれらのサブモジュールを修正したかどうか(もしそうなら、あなたがコミットプッシュシーケンスに従ったなら)親リポジトリをマージしようとする前に疑問に思っていました。 – VonC

答えて

0

彼の質問以下のOPのコメントが消える場合:

この投稿へのそれらのブラウジングのために、私は何が起こったのか100%で確認されませんでしたが、私はそれが手動でGIT_MERGEを削除し、ユーザによるものであったと考えていますファイルをルートリポジトリから取り出し、プッシュします。手動で、各サブモジュールをマージ変更をプッシュして、ルートのサブモジュールで

git commit -i -m "blah" . 

を実行することにより、我々は問題を解決するために現れませんでした。 Gitはルートサブモジュールをコミットする必要があるとは断言しませんでしたが、私たちは必要と思われました。その後のマージはこれまでのところ正しく動作しているようです。

関連する問題