如何查看取消隐藏将对当前工作树所做的更改?我想知道在应用它们之前将进行哪些更改!


当前回答

要查看最新的存储:

git stash show -p

要查看任意存储:

git stash show -p stash@{1}

此外,我使用gitdiff将存储与任何分支进行比较。

您可以使用:

git diff stash@{0} master

查看与分支主机相比的所有更改。或者您可以使用:

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

仅查找更改的文件名。

其他回答

查看最近的存储:

git stash show -p

查看任意存储:

git stash show -p stash@{1}

从git存储手册页:

默认情况下,该命令显示diffstat,但它将接受任何gitdiff已知的格式(例如,要查看的git stash show-p stash@{1}补丁形式的第二个最近的隐藏)。

如果你有diff工具(比如beyond compare)

git difftool stash HEAD

结合我在这篇文章和这篇文章中学到的知识,当我想看看“藏东西里面有什么”时,我首先运行:

git stash show stash@{0}

这将显示修改的文件。然后,为了在difftool中获得良好的视觉差异,我需要:

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

这将同时显示给定存储与其父存储的所有差异。

您可以在~/.gitconfig中配置diff工具,例如使用Meld:

...
[diff]
    tool = meld

不管好坏这可能对所有其他答案都有点多余,并且与当场接受的答案非常相似;但也许这会帮助别人。

git stash show--帮助将为您提供所需的一切;包括隐藏显示信息。

显示[<stash>]将存储中记录的更改显示为存储状态与其原始父级之间的差异。如果没有,则显示最新的。默认情况下,该命令显示diffstat,但它将接受gitdiff已知的任何格式(例如,git stash show-p stash@{1}以补丁形式查看第二个最新的stash)。您可以使用stash.showStat和/或stash.showPatch配置变量来更改默认行为。

以防万一,要比较工作树和存储库中的文件,请使用以下命令

git diff stash@{0} -- fileName (with path)