在git log中显示所有藏匿处

时间:2013-02-20 20:06:53

标签: git git-log git-stash

我希望在git log输出中看到所有的藏匿处。有谁知道是否有办法做到这一点?

编辑:我想记录所有提交。我使用命令

git log --date-order --all

但它只返回最顶层的藏匿处。我希望看到代表其他stashes的提交。

7 个答案:

答案 0 :(得分:36)

您可以使用git stash list显示所有藏匿处。也许您可以编写一个脚本来显示git stash listgit log,并将其与别名一起使用。

答案 1 :(得分:26)

我来到这里寻找和@jbialobr一样的事情,在阅读了之前的答案后我做了一些挖掘,并提出了以下建议。

@msmt的答案为您提供了一个存储日志,您可以使用它来获取要在git日志中使用的哈希值。

git reflog show --format="%h" stash为您提供所有存储的哈希值,然后可以将其传递给git log命令,例如

git log --date-order --all $(git reflog show --format="%h" stash)

我个人现在使用的完整命令是

git log --oneline --graph --decorate --all $(git reflog show --format="%h" stash)

在centos上的git版本2.5.1上测试

答案 2 :(得分:9)

不确定你的意思。 stash是一个分支,您可以使用git log -g stash

列出所有存储

答案 3 :(得分:4)

另一种简单的方法是git reflog show stash

答案 4 :(得分:1)

完整命令:

git log --oneline --graph --all $(git stash list --format="%H")

藏匿处首长名单:

git stash list --format="%H"

答案 5 :(得分:0)

如果您负担得起图形化GUI,请查看gitk

它向您显示分支,标签,远程分支存储等。它在外观上不吸引人,但非常紧凑和有用。它通常与软件包管理器中的“ git”软件包一起提供,并且如果您还具有“ tk”(它使用的GUI工具包),则可以使用。

答案 6 :(得分:0)

要获取包含所有内容的树图:所有分支,所有隐藏物都在您的指尖...


super-useful answer from SicoAnimal上进行扩展,因此您不必键入所有这些内容(对于没有任何Git UI的远程SSH会话尤其有用) ...


1。设置git别名:

# Short and sweet: hashes and graph with all branches and stashes
git config --global alias.l \
    '!sh -c '"'"' git log --oneline --graph --all --decorate $(git reflog show --format="%h" stash --) '"'"' '

# Same as above + dates and emails
git config --global alias.ll \
    '!sh -c '"'"' git log --graph --all --date=format:"'"%Y-%m-%d %H:%M"'" --pretty=format:"'"%C(yellow)%h%Creset%C(auto)%d%Creset %C(cyan)%cd%Creset %s %C(green)(%ce)%Creset"'" $(git reflog show --format="%h" stash --) '"'"' '

2。使用别名

# Short and sweet: hashes and graph with all branches and stashes
git l

# Same as above + dates and emails
git ll

3。效果不错

请注意,您可以看到所有存储,不仅是给定提交中的最新存储(以箭头显示)。

enter image description here


需要改进的空间:

# In case there are no stashes you get one-liner error message.
# The rest works as expected. Not sure how to fix it.
me@mymachine:~/projects/experiment/latest-angular-ten$ git l
fatal: bad revision 'stash'
* 00a696b (HEAD -> master) initial commit


参考:

How to create a Git alias with nested commands with parameters?