6

git、特に Android ソースコードを使用して制御されるプロジェクト内の 2 つのタグの間で、ある種の変更ログを生成する必要があります。このリストには、編集、移動、名前変更、削除、作成されたファイル/ディレクトリなどを含める必要があります。

どんな助けでも素晴らしいでしょう。そして、一度に Android ソース全体でこれを行う方法があれば...さらに良い.

4

2 に答える 2

7

異なるファイルを見つける必要がある場合:

git diff --name-only <tag1> <tag2>

変更されたすべてのファイルを見つける必要がある場合:

git log --name-only --pretty=format: <tag1>..<tag2> |
    grep -v '^$' | sort | uniq

これ--pretty=format:は、コミットに関する情報の出力を抑制し、差分部分のみを出力するためです。git log の場合、<tag1>との順序が<tag2>重要であることに注意してください。

于 2010-03-30T21:06:34.867 に答える
2

コメントで述べたように、「gitブランチ間で変更された共通ファイルを見つけるにはどうすればよいですか?」ここでの主な解決策は次のとおりです。

git log [--pretty=<format>] --name-only tag1..tag2

また

git diff --name-only tag1 tag2

Gitologyレシピにも記載されています)

ただし、「 gitリポジトリで削除されたディレクトリのリストを取得するにはどうすればよいですか?」で説明したように、Gitはファイルのコンテンツのみを追跡し、ディレクトリ自体は追跡しません

ディレクトリに関する情報を含めるには、で遊んでみる必要がありますgit diff-tree

作成または削除されたディレクトリは040000、それぞれ2番目または1番目の列と0000001番目または2番目の列にあります。これは、左右のエントリのツリーエントリの「モード」です。

(チャールズベイリーによると)のようなもの:

git diff-tree -t origin/master master | grep 040000 | grep -v -E '^:040000 040000'
于 2010-03-30T20:58:53.357 に答える