是否可以显示文件的历史记录 - 每次提交都会显示它属于哪个标签?
每次升级数据库时,都会使用新的架构版本更新一个文件。通常,我会有一个数据库(在设置表中有模式版本),我想查看提交(使用该版本号)并查看它们属于哪些版本(标签)。
理想情况下,我希望能够在GitHub上执行此操作,但如果我能在命令行上执行某些操作,我感到很高兴。
更新
我创建了一个Powershell版本的@ phd脚本:
$results = $(git rev-list -5 master -- README.rst)
foreach ( $item in $results ) {
git describe $item --tags;
git show $item --no-patch
}
答案 0 :(得分:1)
git log的命令行:
git log --decorate -- filename
对于日志--decorate
中的每个提交,都会打印提交所属的标记和分支。
例如,从SQLObject:
记录文件README.rst
$ git log --decorate -4 -- README.rst
commit 39b3cd4
Author: Oleg Broytman <phd@phdru.name>
Date: Sat Feb 24 19:10:59 2018 +0300
Prepare for the next release
[skip ci]
commit 0fd1c21 (tag: 3.6.0)
Author: Oleg Broytman <phd@phdru.name>
Date: Sat Feb 24 18:50:36 2018 +0300
Release 3.6.0
commit 0684a9b (tag: 3.5.0)
Author: Oleg Broytman <phd@phdru.name>
Date: Wed Nov 15 16:47:04 2017 +0300
SQLObject 3.5.0 released 15 Nov 2017
commit 623a580 (tag: 3.4.0)
Author: Oleg Broytman <phd@phdru.name>
Date: Sat Aug 5 19:30:51 2017 +0300
Release 3.4.0
UPD 。如果提交未标记git log --decorate
则无法显示最近的标记。 git describe
可以但不能列出提交。因此,您必须使用git rev-list
(git log
后面的管道命令和其他命令)和git describe
列出提交:
$ git rev-list -5 master -- README.rst | xargs git describe
3.6.0-1-g39b3cd4
3.6.0
3.5.0
3.4.0
3.3.0-2-g3d2bf5a
然后你松开了提交的哈希和内容。您需要编写一个脚本来一次显示所有信息。这样的事情:
for H in $(git rev-list -5 master -- README.rst); do
git describe $H; git show $H
done