获取一个存储栈的创建日期

358

有没有办法知道stash是何时创建的?

git stash list 只列出stash,而 git stash show XXXXXX 则显示所有文件和更改内容,但不包括stash创建的日期

3个回答

555

尝试:

git stash list --date=local

应该会打印出类似下面的内容:

stash@{Thu Mar 21 10:30:17 2013}: WIP on master: 2ffc05b Adding resource

15
我能在我的.gitconfig文件中的某个地方添加一个选项,使其成为默认显示吗? - Trevoke
25
我更喜欢使用git stash list --date=relative命令。需要注意的是,--date选项是从git log命令传递而来而非stash本身提供的。有关可能的--date值,请参见此处:https://dev59.com/Y2sz5IYBdhLWcg3wg4Cv - thnee
9
@Trevoke 我在我的~/.gitconfig文件中添加了一个别名 [alias] stashlist = "stash list --date=local" - user848337
9
git stash list --date=short 命令会以固定宽度形式 YYYY-MM-DD 显示日期,让你能够方便地进行目测扫描。 - Tor Klingberg
5
@Dr_Zaszuś 你可以使用 git stash list --pretty=format:"%gd - %ci - %s" - Fabio says Reinstate Monica
显示剩余2条评论

80
你可以使用 --pretty=format 来实现此目的。例如,这将生成一个包括相对时间的暂存列表:
git stash list --pretty=format:"%C(red)%h%C(reset) - %C(dim yellow)(%C(bold magenta)%gd%C(dim yellow))%C(reset) %<(70,trunc)%s %C(green)(%cr) %C(bold blue)<%an>%C(reset)"

我在~/.gitconfig文件的[alias]部分中设置了这个集合,以便我可以将它绑定到一个简单的sl命令:

[alias]
        co = checkout
        lg = log --graph --pretty=format:\"%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset\" --abbrev-commit
        rl = reflog --pretty=format:\"%Cred%h%Creset %C(auto)%gd%Creset %C(auto)%gs%C(reset) %C(green)(%cr)%C(reset) %C(bold blue)<%an>%Creset\" --abbrev-commit
        sl = stash list --pretty=format:\"%C(red)%h%C(reset) - %C(dim yellow)(%C(bold magenta)%gd%C(dim yellow))%C(reset) %<(70,trunc)%s %C(green)(%cr) %C(bold blue)<%an>%C(reset)\"

(您可以看到,我还为logreflog编写了类似的标记)

这是它的样子: git stash list

如果您想显示实际日期而不是相对时间,则将%(cr)替换为%(ci)


1
非常好,已添加到我的 :) - hoffmanc

26

git show stash@{0} 命令会打印出日期和其他相关信息。


1
啊,我一直在使用六个字符的缩写,可能这就是问题所在。当我尝试运行该命令时,我认为它还会抛出一个错误,但我现在在使用Windows,所以这是另一个问题 : )。 - Jason Lawton
4
啊,Windows。试图在Windows上使用git通常会让我想把我的笔记本电脑从窗户扔出去 ;) - bcmcfc
1
似乎在Git 2.8.3中无法打印日期。 - Elijah Lynn
@ElijahLynn 我没有2.8.3版本进行测试,但是在2.9上可以打印完整的提交。 - bcmcfc

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接