Lau*_*ter 47 git git-diff git-stash working-copy
如何将我当前的工作副本与存储区分开来?
我的用例:我的工作副本已包含我的更改的子集stash@{0},但我不想应用所有更改stash@{0}.我想做一个差异来帮助确定stash@{0}我的工作副本中仍然缺少哪些可取的变化.
And*_*ndy 36
如果这是你最近的藏匿,git diff stash@{0}那就行了.如果没有,您可以使用git stash list获取要与之比较的存储的索引.
nik*_*svp 15
我认为OP希望得到答案,看看除了工作副本中存在的文件之外,存储包含的区别.
以下命令显示存储包含的内容.
git stash show -p stash@{0}
Run Code Online (Sandbox Code Playgroud)
Mag*_*gne 11
如果您的工作树是脏的,您可以通过首先提交脏工作树,然后将其与存储进行比较,将其与存储进行比较.之后,您可能希望撤消工作树的提交(以保持历史记录清洁).
提交你的脏工作树:
git add .
git commit -m "Dirty commit"
Run Code Online (Sandbox Code Playgroud)使用该提交区分存储:
git diff stash@{0}
Run Code Online (Sandbox Code Playgroud)然后,之后,您可以还原提交,并将其放回工作目录中:
git reset --soft HEAD~1
git reset .
Run Code Online (Sandbox Code Playgroud)现在你已经用你的藏匿处肮脏的工作树,并回到你最初的位置.
如果没有提交或存储工作副本,则无法执行此操作.存储可能风险较低:
git add -A # Stage all changes in your working copy.
git stash save --keep-index # Stash your working copy and leave it intact
git diff stash@{0} stash@{1}
Run Code Online (Sandbox Code Playgroud)
为了摆脱你刚刚为了差异而使用的存储,使用git stash pop或git stash drop stash@{0}.
如果您想使用提交,请参阅@Magne的回答.
您可以使用git stash show -l. 它显示了您想要的内容,无需额外的存储或提交。
| 归档时间: |
|
| 查看次数: |
15197 次 |
| 最近记录: |