如何查看取消隐藏将对当前工作树所做的更改?我想知道在应用它们之前将进行哪些更改!
当前回答
结合我在这篇文章和这篇文章中学到的知识,当我想看看“藏东西里面有什么”时,我首先运行:
git stash show stash@{0}
这将显示修改的文件。然后,为了在difftool中获得良好的视觉差异,我需要:
git difftool --dir-diff stash@{0} stash@{0}^
这将同时显示给定存储与其父存储的所有差异。
您可以在~/.gitconfig中配置diff工具,例如使用Meld:
...
[diff]
tool = meld
其他回答
一种不移动任何东西的方法是利用补丁可以读取gitdiff(基本上是统一的diff)这一事实
git stash show -p | patch -p1 --verbose --dry-run
这将向您展示补丁通常会做什么的一步一步的预览。这样做的额外好处是,补丁也不会阻止自己将补丁写入工作树,如果出于某种原因,您确实需要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
仅查找更改的文件名。
根据您想要将存储与(本地工作树/父提交/头提交)进行比较的内容,实际上有几个命令可用,其中好的旧git diff和更具体的git存储显示:
Compare stash with ↓ | git diff | git stash show |
---|---|---|
Local working tree | git diff stash@{0} |
git stash show -l |
Parent commit | git diff stash@{0}^ stash@{0} |
git stash show -p |
HEAD commit | git diff stash@{0} HEAD |
/ |
虽然git stash show乍一看更友好,但git diff实际上更强大,因为它允许为更集中的diff指定文件名。我个人在zsh-git插件中为所有这些命令设置了别名。
如果你有diff工具(比如beyond compare)
git difftool stash HEAD
推荐文章
- 如何在git中找到原始/master的位置,以及如何更改它?
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?