2011-01-07 9 views

答えて

2

進行中の作業をコミットし、一時的なブランチのサーバーにプッシュできます。しかし、これを行うには、競合マーカー(git add . ; git commit)でファイルをコミットする必要があります。マージに戻ったときに紛争のある場所の1つを見逃すのが簡単すぎるので、私はあなたにそれをしないようアドバイスします。また、進行中のマージをスカッシュ(git squash save)することもできますが、サーバー上でスカッシュリファレンスをプッシュすることが可能かどうかはわかりません。

もう1つの方法は、複雑なマージを小さなブロックで分割し、各中間マージをプッシュすることです。そして、その後、その後、

*---*---*---*---*---*---*---*---*---A 
    \ 
    \--*---0---1---2---3---4---5---B 

そして、AにBをマージしようと、あなたが最初に0をマージして、同じことを達成することができ、1、2、3、:

exempleについては

次の歴史を持っている場合は、。 ..最後にB(0,1,2、...は連続コミットではないかもしれませんが、Bブランチで重要なマイルストーンがあります)。

これは、複雑なマージを行うときに使用している戦略です。マージされたブランチはマージ中に実行可能な状態ではない可能性がありますので、直接Aには移動せずに別のブランチ(ABマージ)に移動し、マージが完了したらすべてをAにプッシュしてください。

+0

私はプログレッシブコミットを考えました。特定のケースでは、進行中のマージをコミットできません。これが私の探しているものです! – Marcus

+1

私は 'git re-re-re'を使うと、より小さなマージを働かせてから、それらを投げ捨てて、re-re-reデータを使ってすばやくマージすることができます。 –

0

しかし、特定のケースでは、私が探しているのは、進行中のマージをコミットできません!

(ときmerging作成された)一時的.git/MERGE_HEADを移動することが可能にコミット、および.git/MERGE_HEADを復元する必要があります。

関連する問題