如何找出包含文件更改的标记

时间:2014-07-23 07:20:06

标签: git

我想知道哪些文件在哪个标签中发生了变化。所以我使用git whatchanged但这会打印出提交ID。我想以git describe中的格式打印提交(它采用最后一个标记并添加额外提交的数量。

命令

git whatchanged --pretty=%d *
git whatchanged --pretty=%gd *

都不起作用(根本没有输出提交信息)。

编辑:

我在文件列表上使用该命令(通过使用*),即如果标记在该提交之后发生会发生什么。目标是找出包含提交的软件版本

2 个答案:

答案 0 :(得分:2)

根据VonC的回答,我最终使用了

FILEPATH=/the/path/I/want/to/Observe
git log --name-only --oneline --tags --pretty="%d"|egrep "$FILEPATH|^ \("

说明:

git log显示包含标签的完整存储库的更改。然后我grep我感兴趣的文件。另外我在行的开头gre ␣(来获取标签名称,例如␣(1.1.0)

答案 1 :(得分:1)

您不应该在相当长的一段时间内使用whatchanged:请参阅" Difference between git-log and git-whatchanged?"。

相反,请使用git log

git log -p --no-walk --tags --pretty="%H %d" --decorate=full

自git 1.8.5.4起正常工作(参见" show all tags in git log")

使用-p选项,它会显示差异。

其他选项可用于显示文件:

 git log --name-only --oneline --tags --pretty="%d" | grep -v "^$" | more

(请参阅" How to show changed file name only with git log?")

例如,在git repo本身上:

C:\Users\VonC\prog\git\git>
git log --name-only --oneline --tags --pretty="%d"|grep -v "^$"|more

 (tag: v2.0.0-rc0)
Documentation/RelNotes/2.0.0.txt
GIT-VERSION-GEN
Documentation/RelNotes/2.0.0.txt
config.c
contrib/completion/git-prompt.sh
contrib/remote-helpers/test-bzr.sh
t/t5560-http-backend-noserver.sh
t/t7001-mv.sh
contrib/completion/git-completion.bash
contrib/completion/git-completion.zsh
contrib/remote-helpers/git-remote-bzr
contrib/remote-helpers/test-bzr.sh
contrib/remote-helpers/git-remote-bzr
contrib/remote-helpers/git-remote-hg
contrib/remote-helpers/test-hg-bidi.sh
contrib/remote-helpers/test-hg-hg-git.sh

 (tag: v1.9.2, upstream/maint)
Documentation/RelNotes/1.9.2.txt
Documentation/git.txt
GIT-VERSION-GEN
Documentation/git-http-backend.txt
utf8.c
Documentation/RelNotes/2.0.0.txt
Documentation/RelNotes/1.9.2.txt
git-p4.py
contrib/hooks/multimail/CHANGES
contrib/hooks/multimail/README
contrib/hooks/multimail/README.Git
contrib/hooks/multimail/git_multimail.py
contrib/hooks/multimail/post-receive
builtin/pack-objects.c
....