2012-09-26 9 views
7

フォーク/リベース/ pull-request gitワークフローをバージョン管理とコマンドラインを恐れる私のチームの開発者に見せかけるために、当社の開発のwikiにリベースの記事を追加することでrebase中にno-opコミットを強制するようにしました

、私はちょうど私が言うポイントになった「git rebaseを行います。すべての競合をマージがある場合は、それらを修正しgit addを行う。そして、git rebase --continueを行います。」

しかし、例を挙げて取り組んでスクリーンショットを取るには、私はそこにマージ競合だ、と私は実際にgit rebase --continueを継続することを拒否やって、上流分岐の賛成で、それを解決した場合は、エラーを与えることを思い出した :

No changes - did you forget to use 'git add'? 
If there is nothing left to stage, chances are that something else 
already introduced the same changes; you might want to skip this patch. 

あり、ここで技術的な詳細の優れた議論です:Git rebase: conflicts keep blocking progress

は、しかし、私がしたいことは、この動作停止を作ることです。

このような状況が起こるのは良い設計理由があると思われます(おそらく通常のコミットマシンを使用しているリベースに関係していますが、このような場合は理にかなっています)が、この状況では混乱して直感的ではなく、あなたの修正が上流ブランチのように見える場合は、git rebase --skipを実行し、それ以外の場合はgit rebase --continueを実行してください。

rebaseまたはバージョン管理された設定ファイル(このため、各デベロッパーのコンピュータに設定する必要はありませんか、そうするように指示する必要はありません)のフラグを使用して、この動作をスケルチする方法はありますか?

+2

私はこれがその質問と重複しているとは思わない。ここでのOPは、空のコミットのリベースをスキップする方法について質問していますが、ここでOPは、 'git rebase'が空のコミットを作成する方法を尋ねています。 –

+0

しかし、なぜあなたは空のコミットをしたいですか?空のコミットとは、そこで実行されたすべての作業が、再配置されたブランチからのコミットに導入されたことを意味します。この場合、コミット全体を削除する必要があります。それは、事後(対話型のリベースを使用し、不要なコミットを省略することなど)や他の方法で行うことができますが、空のコミットを行うのは間違いです。 – ErikE

答えて

2

現在documentation of git-rebase--keep-emptyオプションを言及:

--keep-empty
     Keep the commits that do not change anything from its parents in the result.

は残念ながら、これは設定ファイルに入れするための設定がありません。

関連する問題