2017-08-04 4 views
0

私はいくつかのコミットのブランチを上流ブランチにリベースしています。私は私の支店で残りのコミットを続けることができないいくつかの種類の障害によってブロックされているので、私はgit resetが動作しないように見えても続ける方法が必要です。Git rebase --continueが本当に本当に空のコミットでブロックされた場合の処理​​方法

私が言ったように私はブランチを元に戻しています。私はこれのようにいつも再構築しますが、1つか2つのコミットが空のコミットに解決するという矛盾を持っていることには驚くことはありません。しかし、競合解決のステップ(競合するファイルを編集して結果のファイルを追加する)までは、どのコミットがコミットするか分かりません。

$ git checkout working_branch 
$ git rebase -i upstream 
[Here it is reported that file.c has conflicts. I edit it. 
    The resulting diff is empty.] 
$ git add file.c 
$ git rebase --continue 
The previous cherry-pick is now empty, possibly due to conflict resolution. 
If you wish to commit it anyway, use: 

    git commit --allow-empty 

Otherwise, please use 'git reset' 
rebase in progress; onto xxxsha 

しかしgit resetは役に立たないのである。この時点で、私はまったく同じ状態で終わる

:だから、ここで何が起こったかの抽象化されたバージョンがあります。私は空のコミットを望みません。私は前にこのプロセスから潜在的な空白のコミットに来て、私はいつも非常にコミットを消すことができて幸せだった。

ほとんど同様の結果が出ましたが、ブランチをリベースしないで1回のコミットを選択してからの質問git cherry-pick not workingが出ました。もう一人の尋問者は、ちょうど先に行って、チェリーピックをしていないことに満足していました。段階的に私はrebaseがそれぞれのコミットのためにcherry-pickを使用していると推測します。私の場合、これは私の支店の最初のコミットで起こりました。私は本当の解決策が必要です。あなたは競合を解決行われ、あなたは空のコミットを残しているを発見していた後

答えて

0

持ち帰りは要約ラインで慎重に見ています。コミットの要約行が適用されないことがわかった場合、答えはgit rebase --continueであり、実際には次のコミットです。私はスクリーン上のテキストが、コマンドが頻繁に示す通常の空のコミットメッセージと似たようなもので捨てられました。しかし、それは別の種類のメッセージでした。実際には続けられ、次のコミットに取り掛かっていましたが、自動的に空に解決されました。テキストには、私が直前にコミットしたサマリー行ではなく、ブランチの次のコミットからのサマリー行が含まれていました。したがって、空のコミット状態がこのように現れた場合、それ以上の苦労なしにもう一度やり直すことは大丈夫です。

1

、あなたはそれをスキップすることができます:

$ git rebase --skip 
+0

これは通常のケースに当てはまると思いますが、私を困らせていた状況ではありません。 –

関連する問題