2017-04-11 4 views
2

私は対話型リベースを実行してabcdefをコミットしました。エディタで Gitはすべてのコミットメッセージを対話型リベースに追加します

git rebase -i abcdef 

は - Vimは私はすべてのためのメッセージを編集するには、このvimのコマンド

%s/pick \(\w\{7}\)/reword \1 PREFIX:/が、その後のgitが私を促すために行くを使用して

reword hash PREFIX: Original commit messageにすべてpick hashラインを変更しましたコミット。このプロセスをバッチする簡単な方法はありますか?

答えて

2
GIT_EDITOR='sed -i "1s/^/PREFIX: /"' GIT_SEQUENCE_EDITOR=vim \ 
     git rebase -i abcdef 

または交互に、あなたは可能性があり

git -c core.editor='sed -i "1s/^/PREFIX: /"' \ 
     -c sequence.editor=vim \ 
     rebase -i abcdef 

あなたは環境のオーバーライドを使用しない場合。

あなたがそれらの言い直しをしようとしていることが分かっているなら、あなたはシーケンスを拒否することすらできます。GIT_SEQUENCE_EDITOR='sed -i "s/^pick/reword/"'

+0

@jtill https://davidwalsh.name/update-git-commit-messagesについてどう思いますか? – peter

+0

filter-branchも機能しますが、これは現時点で最も便利な点です。時にはドライバーが必要な場合もあれば、時にはクローバーが必要な場合もあります。時には一握りの人がやることもあります。時にはすべての人が最終的に仕事をすることもあり、現時点で最も手ごろなものです。 'git commit --amend'はチェックアウトコミット、' git rebase -i'はhunk-shufflingとmerge elisionとlight-duty rewordsのために 'git filter-branch'を実行します。塊をシャッフルして、リベースのオーバーヘッドが問題になり始める。 – jthill

+0

2番目の例では、sedコマンドにスラッシュがありません。上記のように 'sed -i" 1s/^/PREFIX:/ "'にする必要があります。 – jthodges

関連する問題