2011-02-03 4 views
1

git repoのクローンを作成すると、特定のファイルに関連付けられたすべてのコミットを取得し、それぞれ別のファイルに出力します。特定のファイルに関連付けられたパッチを取得するにはどうすればよいですか?

これは、git logまたはgit形式のパッチと関係があります。

ありがとうございました。

$ git rev-list --all -- path 

これはあなたにそれぞれのリストのSHA1を与えるには、そのパスそのタッチをコミット:

答えて

3

あなたはすべてのSHA1を取得するためにgit rev-listを使用することができますが、パスに触れるコミット。あなたがコミットメッセージとパッチをしたい場合は、git logを使用することができます。

$ git log --all -- path 
$ git log --all -p -- path 
+1

これらをすべて別々のファイルにまとめるには、最も簡単なことはおそらく次のようなものでしょう: 'git rev-list [--all] - |読んでいる間c; git log -1を実行します。-p $ c - > $ c.patch;完了しました。彼らがどのような順序で入るかを知りたいなら、format-patchのようにそこにカウンタを追加したいかもしれません。 (残念ながら、format-patchは単一のファイルに対してのみパッチを実行することはできないようです。) – Cascabel

0

あなたはそれぞれにファイルに加えられた変更を参照してくださいあなたは「whatchanged」コマンドを使用することができますコミットしたい場合は

git whatchanged [options] <file> 

これをチェックしてくださいtutorial for creating and applying patches

関連する問題