我想知道哪些文件在哪个标签中发生了变化。所以我使用git whatchanged
但这会打印出提交ID。我想以git describe
中的格式打印提交(它采用最后一个标记并添加额外提交的数量。
命令
git whatchanged --pretty=%d *
git whatchanged --pretty=%gd *
都不起作用(根本没有输出提交信息)。
编辑:
我在文件列表上使用该命令(通过使用*
),即如果标记在该提交之后发生会发生什么。目标是找出包含提交的软件版本
答案 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
....