6

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

任何帮助都会很棒。而且,如果您有办法同时在整个 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位于第二列或第一列以及第一列000000或第二列。这是左右条目的树条目“模式”。

像(根据查尔斯贝利):

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