我想检查一个隐藏,并找出它会做出什么改变,如果我将它应用到工作树在其当前状态。

我知道我可以在stash上做一个git差异,但这向我展示了工作树和stash之间的所有差异,而我只是想知道stash应用将会改变什么。


当前回答

我用这个来查看我所有的存储与颜色差异高亮(在Fedora 21):

git stash list | 
  awk -F: '{ print "\n\n\n\n"; print $0; print "\n\n"; 
  system("git -c color.ui=always stash show -p " $1); }' | 
  less -R

(改编自Git:在不应用stash的情况下查看隐藏的内容)

其他回答

我喜欢用gitk的图形用户界面来可视化git回购。您可以查看存储的最后一项:

gitk stash

你也可以使用查看你所存储的任何更改(由git stash list列出)。例如:

gitk stash@{2}

在下面的屏幕截图中,您可以在左上方看到作为提交的隐藏,在提交历史中它来自何时和何处,右下方是修改的文件列表,左下方是逐行差异。与此同时,赃物还藏在那里。

我用这个来查看我所有的存储与颜色差异高亮(在Fedora 21):

git stash list | 
  awk -F: '{ print "\n\n\n\n"; print $0; print "\n\n"; 
  system("git -c color.ui=always stash show -p " $1); }' | 
  less -R

(改编自Git:在不应用stash的情况下查看隐藏的内容)

显示所有存储

仅限文件名:

for i in $(git stash list --format="%gd") ; do echo "======$i======"; git stash show $i; done

所有存储中的完整文件内容:

for i in $(git stash list --format="%gd") ; do echo "======$i======"; git stash show -p $i; done

您将得到彩色的差异输出,您可以用空格(向前)和b(向后)来分页,并用q来关闭当前存储的分页器。如果你想把它放在一个文件中,然后追加>的存储。不同于命令。

是的,查看修改内容的最好方法是保存在这样的文件中:

git stash show -p stash@{0} > stash.txt

查看所有的变化在一个未弹出的stash:

git stash show -p stash@{0}

要查看一个未弹出的存储中的特定文件的更改:

git diff HEAD stash@{0} -- path/to/filename.php