使用代码显示文件记录?

时间:2018-03-05 00:23:48

标签: git github

是否可以显示文件的历史记录 - 每次提交都会显示它属于哪个标签?

每次升级数据库时,都会使用新的架构版本更新一个文件。通常,我会有一个数据库(在设置表中有模式版本),我想查看提交(使用该版本号)并查看它们属于哪些版本(标签)。

理想情况下,我希望能够在GitHub上执行此操作,但如果我能在命令行上执行某些操作,我感到很高兴。

更新

我创建了一个Powershell版本的@ phd脚本:

$results = $(git rev-list -5 master -- README.rst)

foreach ( $item in $results ) { 
  git describe $item --tags; 
  git show $item --no-patch 
}

1 个答案:

答案 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-listgit 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