如何查看取消隐藏将对当前工作树所做的更改?我想知道在应用它们之前将进行哪些更改!
当前回答
如果你有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 -p
要查看任意存储:
git stash show -p stash@{1}
此外,我使用gitdiff将存储与任何分支进行比较。
您可以使用:
git diff stash@{0} master
查看与分支主机相比的所有更改。或者您可以使用:
git diff --name-only stash@{0} master
仅查找更改的文件名。
以防万一,要比较工作树和存储库中的文件,请使用以下命令
git diff stash@{0} -- fileName (with path)
@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
如果隐藏的更改所基于的分支在此期间发生了更改,则此命令可能有用:
git diff stash@{0}^!
这会将隐藏与它所基于的提交进行比较。
推荐文章
- GitHub -致命:无法读取用户名https://github.com':没有这样的文件或目录
- 撤消git平分错误
- 使用.gitconfig配置diff工具
- 如何配置Mac OS X术语,使git有颜色?
- Visual Studio Code: .git文件夹/文件隐藏
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?