gitコミットを書いたことがあります。
私はそれらをgithubにプッシュする前に、コミットごとにgit-clang-format
を実行して、履歴にきれいにフォーマットされたコードを取得します。一連のgitコミットでgit-clang-formatを実行する
これを達成するrebase
とgit-clang-format
の組み合わせがありますか?
gitコミットを書いたことがあります。
私はそれらをgithubにプッシュする前に、コミットごとにgit-clang-format
を実行して、履歴にきれいにフォーマットされたコードを取得します。一連のgitコミットでgit-clang-formatを実行する
これを達成するrebase
とgit-clang-format
の組み合わせがありますか?
これは、git filter-branch
の仕事のように見えます。これは、あなたが望むコミットを書き換えることができます。これらのコミットはまだプッシュされていないので、コンテンツ(したがってSHA1)の変更は大きな問題ではありません。
リベースまたはチェリーピッキングが行う効果と似ていますが、再生される各コミットに対して任意のコマンドを実行できる点が異なります。
あなたはできrun a filter-branch
over the last few commits:
を参照してください "Reformatting Your Codebase with git filter-branch
"、git-clang-format
syntaxを考慮Elliot Chance
git filter-branch --tree-filter 'git-clang-format' -- <SHA1>..HEAD
で、あなただけの各コミットで変更されたファイルにそれを適用することができます。例えば
は、.cpp
ファイルについて:
git filter-branch --tree-filter 'git-clang-format $(\
git diff-index --diff-filter=AM --name-only $GIT_COMMIT |\
grep .cpp)' -- <SHA1>..HEAD
アップデート2017年、Gitの2.14.x/2.15(Q4 2017)を使用すると、イラストを持っている:
はcommit 2118805、commit 6134de6(2017年8月14日を参照してください。 )によってBrandon Williams (mbrandonw
)。
(commit a36f631にJunio C Hamano -- gitster
--により合併、2017年9月25日)
のMakefile:スタイルのビルドルールを追加
HEAD間の差分 上
git-clang-format
を実行します 'style
' ビルドルールを追加します。現在のワークツリー。
結果は変更が示唆されています。
.PHONY: style
style:
git clang-format --style file --diff --extensions c,h