Amb*_*ber 1729
查看最新的藏匿处:
git stash show -p
Run Code Online (Sandbox Code Playgroud)
看到任意藏匿:
git stash show -p stash@{1}
Run Code Online (Sandbox Code Playgroud)
从git stash
联机帮助页:
默认情况下,该命令显示diffstat,但它将接受git diff已知的任何格式(例如,git stash show -p stash @ {1}以查看补丁形式的第二个最近的存储).
cze*_*asz 294
要查看最近的藏匿信息:
git stash show -p
Run Code Online (Sandbox Code Playgroud)
要查看任意存储:
git stash show -p stash@{1}
Run Code Online (Sandbox Code Playgroud)
另外,我使用git diff来比较存储与任何分支.
您可以使用:
git diff stash@{0} master
Run Code Online (Sandbox Code Playgroud)
查看与分支主数据相比的所有更改.
或者您可以使用:
git diff --name-only stash@{0} master
Run Code Online (Sandbox Code Playgroud)
轻松查找仅更改的文件名.
t.h*_*ntz 97
如果您的存储更改所基于的分支在此期间已更改,则此命令可能有用:
git diff stash@{0}^!
Run Code Online (Sandbox Code Playgroud)
这将stash与它所基于的提交进行比较.
Mag*_*gne 41
如果您的工作树是脏的,您可以通过首先提交脏工作树,然后将其与存储进行比较,将其与存储进行比较.之后,您可以使用脏工作树撤消提交(因为您可能不希望在提交日志中具有该脏提交).
您还可以使用以下方法来比较两个stashes(在这种情况下,您只需先弹出其中一个stashes).
提交你的脏工作树:
git add .
git commit -m "Dirty commit"
Run Code Online (Sandbox Code Playgroud)使用该提交区分存储:
git diff HEAD stash@{0}
Run Code Online (Sandbox Code Playgroud)然后,之后,您可以还原提交,并将其放回工作目录中:
git reset --soft HEAD~1
git reset .
Run Code Online (Sandbox Code Playgroud)现在你已经用你的藏匿处肮脏的工作树,并回到你最初的位置.
Sen*_*ith 24
@Magne的回答是唯一一个回答问题最灵活/最有用的解释的(非常晚)日期,但它比必要的复杂得多.而不是提交和重置,只需存储您的工作副本,比较,然后取消暂停.
git stash save "temp"
git diff stash@{0} stash@{1}
git stash pop
Run Code Online (Sandbox Code Playgroud)
通过暂时使您的工作文件夹更改成为存储堆栈的顶部(存储@ {0}),将原始顶部向下移动一个(存储@ {1},这向您显示存储堆栈顶部与工作文件夹之间的差异然后使用"新设置"位置中的原始顶部进行比较,以便您看到在当前工作之上应用它所带来的更改.
"但如果我目前没有工作怎么办?" 然后你处于正常无聊的情况.只需使用@ Amber的答案
git stash show
Run Code Online (Sandbox Code Playgroud)
或@ czerasz的回答
git diff stash@{0}
Run Code Online (Sandbox Code Playgroud)
或者承认,无论如何都要快速轻松地存储和取消存储,只需解开更改并检查它们.如果您不希望它们暂时抛出(当前索引/工作文件夹更改).完全是那个
git stash apply
git diff
git reset
git checkout
Run Code Online (Sandbox Code Playgroud)
Dav*_*ost 23
根据您想要将 stash 与(本地工作树/父提交/头部提交)进行比较的内容,实际上有几个命令可用,其中的 good oldgit diff
和更具体的git stash show
:
????????????????????????????????????????????????????????????????????????????
? 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 ? / ?
????????????????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
虽然git stash show
乍一看对用户更友好,但git diff
实际上更强大,因为它允许为更集中的差异指定文件名。我个人在我的zsh git plugin 中为所有这些命令设置了别名。
Pra*_*B R 20
以防万一,要比较工作树和存储中的文件,请使用以下命令
git diff stash@{0} -- fileName (with path)
Run Code Online (Sandbox Code Playgroud)
Rim*_*ian 19
这对git版本1.8.5.2适用于我:
git diff stash HEAD
Run Code Online (Sandbox Code Playgroud)
cii*_*yan 10
我相信git diff <current-branchname>..stash@{0}
这是比较本地工作树和最新存储之间的变化的最直观的方法。根据需要替换stash@{0}
为适用的存储编号。
请注意这git diff stash@{0}
可能会产生误导性结果。如果您的存储和当前分支的两个历史记录有所不同,则差异将看起来像您\xe2\x80\x99在存储中添加所有新内容并删除当前分支特有的所有内容。
根据git书回答
\n另外,请注意,双点..
和三点...
指定不同的提交比较,我指的是这个答案的双点。详情请参阅git书籍
在不移动任何东西的情况下做到这一点的一种方法是利用patch
可以读取 git diff 的事实(基本上是统一的差异)
git stash show -p | patch -p1 --verbose --dry-run
Run Code Online (Sandbox Code Playgroud)
这将向您展示补丁通常会执行的操作的逐步预览。这样做的额外好处是,补丁也不会阻止自己将补丁写入工作树,如果由于某种原因你真的需要 git 停止修改前的提交,请继续并删除 --dry-运行并按照详细说明进行操作。
她的藏品清单
git stash list
stash@{0}: WIP on feature/blabla: 830335224fa Name Commit
stash@{1}: WIP on feature/blabla2: 830335224fa Name Commit 2
Run Code Online (Sandbox Code Playgroud)
因此,获取隐藏号码并执行以下操作:
你可以做:
git stash show -p stash@{1}
Run Code Online (Sandbox Code Playgroud)
但是如果您想要一个差异(这与显示存储不同,这就是我写这个答案的原因。Diff
考虑分支中的当前代码并show
仅显示您将应用的内容)
您可以使用:
git diff stash@{0}
Run Code Online (Sandbox Code Playgroud)
或者
git diff stash@{0} <branch name>
Run Code Online (Sandbox Code Playgroud)
另一件有趣的事情是:
git stash apply
git stash apply stash@{10}
Run Code Online (Sandbox Code Playgroud)
这会应用存储,而不将其从列表中删除,您可以git checkout .
删除这些更改,或者如果您愿意git stash drop stash@{10}
从列表中删除存储。
从这里开始,我从不建议使用和git stash pop
的组合。如果您在错误的分支中应用存储,那么有时很难恢复您的代码。git stash apply
git stash drop
归档时间: |
|
查看次数: |
317216 次 |
最近记录: |