2016-08-30 5 views
0

リベース中に大きなマージ競合が解決されました。一連のコマンドは:Git-resolved rebase conflictsが実行されました。作業を保存する方法は?

git rebase --continue 

を...しかし、私はそれを行うのを忘れ:一度すべての競合が解決された

git rebase origin/develop 
git mergetool 

、私は通常実行します。

私は、通常のように(リベースが完了したように)きれいな作業ディレクトリから始めていたと思って作業ディレクトリを変更しました。

問題をもっと混乱させるために、作業ディレクトリの変更を仮想マシンに転送するためにセットアップしたスクリプトを間違って呼び出しました。 (私が働いている)ホストに適用されたコマンドは以下の通りであった。

git rebase origin/develop 

[競合

[ブランチHEADにクリーンな作業ディレクトリ]:

git add -A 
git commit -m 'temp' 
git format-patch HEAD~ 
git reset HEAD~1 

だからシーケンス全体がこれですローカルに削除/リモートで変更されたファイルを含む]

git mergetool 

[紛争は解決しましたが、なしgit rebase --continue]

ファイルの追加や削除などの作業ディレクトリに[全変更]

git add -A 
git commit -m 'temp' 
git format-patch HEAD~ 
git reset HEAD~1 

バックこのから取得する方法はありますか?私は、紛争解決と私のその後の作業ディレクトリの変更の両方を維持したい。私は特にGitがどんな状態にあるのか、矛盾が解決されてもまだ実行していないときには特に興味がありますgit rebase --continue;何てgit rebase --continueが実際にしていますか?

答えて

0

この状況を解決するのは実際は非常に簡単なようです。 git mergetoolの後、ステージングエリアで待っていたオリジナルのHEADコミットと競合解決がありました。私はこの時点でgit rebase --continueが単にgit commitと同じ方法でそれらをコミットしたと思います。

代わりに、私は、その後、いくつかのより多くの変更を加えたスクリプトを実行しました:私はちょうど走った。その後

git add -A # add more changes to the staging area 
git commit -m 'temp' # do a regular commit instead of continuing the rebase 
# at this point the HEAD (temp) contains all the changes I want 
git format-patch HEAD~ # irrelevant, no effect 
git reset HEAD~1 # all changes in working directory 

:検査時

git add -A 
git commit -m all 

を、HEAD(すべて)は、元を持っているようです紛争が解決されたコミットとその後の変更が含まれます。

関連する問題