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

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


当前回答

您可以通过以下命令查看所有的存储列表:

$ git stash list

stash@{0}: WIP on dev: ddd4d75 spelling fix

stash@{1}: WIP on dev: 40e65a8 setting width for messages

......

......

......


stash@{12}: WIP on dev: 264fdab added token based auth

最新藏的是第一个。

您可以简单地选择上述列表中提供的stash的索引n,并使用以下命令查看已存储的详细信息

git stash show -p stash@{3}

同样的,

git stash show -p stash@{n}

也可以使用以下命令检查diff:

git diff HEAD stash@{n} -- /path/to/file

其他回答

你可以用gitlen扩展查看VSCode中隐藏的更改

gitlen存储的截图

下面的命令可以用来提取与任何其他存储、提交、分支或HEAD的存储变更的差异。

git stash show
git show
git diff
git difftool

让我们来看看如何使用上面提到的每一个命令。

Git藏匿秀

简单的命令git stash show给出了非常简短的更改摘要 的文件,但不会显示变化的差异与当前的头。

吉特秀

git-show命令用于查看各种类型的对象。 git-show命令不仅用于可视化存储更改,而且 也用于查看一个或多个对象,如斑点,树,标签和 提交。

git diff

git-diff命令也是常用的命令之一 显示提交、提交和工作树等之间的更改。 默认情况下,git diff将显示所选stash的diff 对(修改的文件)存储库的当前状态,除非有其他存储 指定引用或提交。

获取top most stash@{0}和master branch之间的差异:

git diff stash@{0} master

只显示文件的名称,而不是变化的差异:

git diff --name-only stash@{0} master

查看选定文件的选定存储之间的差异:

git diff stash@{0}^1 stash@{0} -- <filename>

git difftool

git-difftool命令也可以用来查找差异between 选定的存储和选定的提交或分支或存储

查看最近两次存储之间的差异:

git difftool stash@{0} stash@{0}^1

git difftool --dir-diff stash@{0} stash@{0}^1

简介:

从选定的stash中提取差异的有用命令:git stash show, git show, git diff, git difftool。

看到差异使用命令git stash显示,

git stash show -p stash@{0}

使用命令git show查看隐藏的变化,

git show stash@{1}

使用命令git diff查看最新存储和选择提交之间的区别,

git diff stash@{0} <commit-hash>

引用:

https://howto.lintel.in/how-to-see-stashed-changes-using-git-stash/

https://git-scm.com/docs/git-show

https://git-scm.com/docs/git-stash

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

gitk stash

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

gitk stash@{2}

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

一些回答提到了git存储显示上的-p(或——patch)标志

然而,值得一提的是,在显示Git存储时,可以将此设置为默认行为。Git stash显示stash@{0}),或者使用Git配置:

git config --global stash.showPatch true

...或者在你的.gitconfig文件中:

[stash]
  showPatch = true

这使得git stash show在默认情况下表现得像git show。如果和当你只是想看到diffstat(即。添加/删除的行摘要),你仍然可以通过——stat标志看到(再次,像git show一样):

git stash show --stat stash@{0}

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

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