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


当前回答

要查看最新的存储:

git stash show -p

要查看任意存储:

git stash show -p stash@{1}

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

您可以使用:

git diff stash@{0} master

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

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

仅查找更改的文件名。

其他回答

我相信gitdiff<currentbranchname>。。stash@{0}是比较本地工作树和最新stash之间变化的最直观方法。根据需要,用适用的存储编号替换存储@{0}。

请注意,git diff stash@{0}可能会产生误导性结果。如果您的存储和当前分支的两个历史记录发生了分歧,那么差异看起来就像您在存储中添加了所有新的内容,并删除了当前分支特有的所有内容。

基于git手册的答案

此外,请注意双点。。和三点。。。指定不同的提交比较,我指的是这个答案的双点。有关详细信息,请参阅git手册

查看最近的存储:

git stash show -p

查看任意存储:

git stash show -p stash@{1}

从git存储手册页:

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

要查看最新的存储:

git stash show -p

要查看任意存储:

git stash show -p stash@{1}

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

您可以使用:

git diff stash@{0} master

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

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

仅查找更改的文件名。

@Magne的回答是迄今为止(很晚)唯一一个对这个问题做出最灵活/最有用解释的答案,但它比必要的要复杂得多。而不是提交和重置,只需隐藏工作副本,进行比较,然后取消显示。

git stash save "temp"
git diff stash@{0} stash@{1}
git stash pop

这向您展示了存储堆栈顶部和工作文件夹之间的差异,方法是暂时将工作文件夹更改变为存储堆栈顶部(stash@{0}),将原始顶部向下移动一个(stash@{1}),然后在“新集合”位置使用原始顶部进行比较,以便您看到将其应用于当前工作顶部所产生的更改。

“但如果我现在没有任何工作怎么办?”那么你就处于正常的无聊状态。只需使用@Amber的答案

git stash show

或者@czerasz的回答

git diff stash@{0}

或者承认隐藏和取消隐藏是快速和容易的,只要取消隐藏更改并检查它们即可。如果你现在不想要它们,就扔掉它们(当前的索引/工作文件夹更改)。完全是这样

git stash apply
git diff
git reset
git checkout

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

git difftool stash HEAD