创建已更改文件/目录/等的列表。在两个标签之间使用git

时间:2010-03-30 20:34:43

标签: android git diff changelog

我需要在使用git控制的项目中的两个标签之间生成更改日志,特别是android源代码。此列表应包括已编辑,移动,重命名,删除,创建的任何文件/目录/等。

任何帮助都会很棒。如果你有办法在整个android源码上做到这一点......甚至更好。

2 个答案:

答案 0 :(得分:6)

如果您需要查找哪些文件不同:

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

如果您需要查找所有已更改的文件:

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

--pretty=format:用于抑制有关提交的打印信息,并仅打印差异部分。请注意,对于git log,<tag1><tag2>的顺序很重要。

答案 1 :(得分:1)

正如我在评论中提到的,"How do I find common files changed between git branches?"是这里的主要解决方案:

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

git diff --name-only tag1 tag2

(也在Gitology recipe中提及)

但是:正如“How to get a list of directories deleted in my git repository?”中提到的, Git只跟踪文件的内容,而不是跟踪目录

要包含有关目录的信息,您需要开始使用git diff-tree

  

任何已创建或删除的目录在第二列或第一列中都会有040000,而在第一列或第二列中分别有000000。这是左右条目的树条目“模式”。

类似的东西(根据Charles Bailey):

git diff-tree -t origin/master master | grep 040000 | grep -v -E '^:040000 040000'