如何查看取消隐藏将对当前工作树所做的更改?我想知道在应用它们之前将进行哪些更改!
当前回答
她列出了藏匿物品的清单
git stash list
stash@{0}: WIP on feature/blabla: 830335224fa Name Commit
stash@{1}: WIP on feature/blabla2: 830335224fa Name Commit 2
因此,获取存储编号并执行以下操作:
您可以执行以下操作:
git stash show -p stash@{1}
但如果你想要一个diff(这与显示隐藏不同,这就是我写这个答案的原因。diff考虑分支中的当前代码,show只是显示你将应用的内容)
您可以使用:
git diff stash@{0}
or
git diff stash@{0} <branch name>
另一件有趣的事情是:
git stash apply
git stash apply stash@{10}
这将在不从列表中删除的情况下应用隐藏,您可以进行git结帐。删除这些更改,或者如果你很高兴git stash drop stash@{10},从列表中删除一个stash。
从这里开始,我从不建议使用git stash pop,并使用gitstash apply和gitstash drop的组合。。。有时候很难恢复代码。
其他回答
如果你的工作树是脏的,你可以通过首先提交脏的工作树,然后将其与隐藏进行比较,将其与存储进行比较。然后,您可以使用脏的工作树撤消提交(因为您可能不希望在提交日志中有脏的提交)。
您还可以使用以下方法将两个储藏物相互比较(在这种情况下,您只需首先弹出其中一个储藏物)。
提交您的脏工作树:git添加。gitcommit-m“脏提交”将隐藏与提交区分开来:git diff HEAD存储@{0}然后,您可以恢复提交,并将其放回工作目录:git reset—软HEAD~1git重置。
现在,你已经用你的储藏物改变了肮脏的工作树,回到了最初的位置。
要查看最新的存储:
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 list
stash@{0}: WIP on feature/blabla: 830335224fa Name Commit
stash@{1}: WIP on feature/blabla2: 830335224fa Name Commit 2
因此,获取存储编号并执行以下操作:
您可以执行以下操作:
git stash show -p stash@{1}
但如果你想要一个diff(这与显示隐藏不同,这就是我写这个答案的原因。diff考虑分支中的当前代码,show只是显示你将应用的内容)
您可以使用:
git diff stash@{0}
or
git diff stash@{0} <branch name>
另一件有趣的事情是:
git stash apply
git stash apply stash@{10}
这将在不从列表中删除的情况下应用隐藏,您可以进行git结帐。删除这些更改,或者如果你很高兴git stash drop stash@{10},从列表中删除一个stash。
从这里开始,我从不建议使用git stash pop,并使用gitstash apply和gitstash drop的组合。。。有时候很难恢复代码。
查看最近的存储:
git stash show -p
查看任意存储:
git stash show -p stash@{1}
从git存储手册页:
默认情况下,该命令显示diffstat,但它将接受任何gitdiff已知的格式(例如,要查看的git stash show-p stash@{1}补丁形式的第二个最近的隐藏)。
根据您想要将存储与(本地工作树/父提交/头提交)进行比较的内容,实际上有几个命令可用,其中好的旧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插件中为所有这些命令设置了别名。
推荐文章
- 如何在git中找到原始/master的位置,以及如何更改它?
- Bower: ENOGIT Git未安装或不在PATH中
- Bitbucket上的Git:总是要求密码,即使上传了我的公共SSH密钥
- Git别名-多个命令和参数
- 如何添加一个“打开git-bash这里…”上下文菜单到windows资源管理器?
- 是否可以在Git中只提取一个文件?
- 当我做“git diff”的时候,我怎么能得到一个并排的diff ?
- 在git中如何将提交移动到暂存区?
- 如何缩小。git文件夹
- 如何在本地删除分支?
- 找到包含特定提交的合并提交
- Windows上Git文件的权限
- 如何从一个枝头摘到另一个枝头
- 如何获得在两次Git提交之间更改的所有文件的列表?
- 什么是跟踪分支?