我在 git stash 中有一个问题。
比如说我a.txt,b.txt & c.txt
在 repo 中有 3 个文件,并且目录是干净的。
现在我正在修改其中的 2 个文件:a.txt and b.txt
.
现在我还没有完成对两个文件的更改,所以我通过 foll 命令将它们存储起来:
$ git stash save "First Stash"
不,如果我做 a $ git stash list
,我会得到
stash@{0}: On master: First Stash
否,如果我修改第三个文本文件c.txt
并将其存储起来,如图所示:
$ git stash save "Second Stash"
最后不,如果我这样做,$git stash list
我会得到以下结果,
stash@{0}: On master: Second stash
stash@{1}: On master: First Stash
存储号码和消息在这里混淆了。这是怎么回事?现在,如果我弹出stash@{0}
我得到第一个存储内容,但这里的消息反转显示为第二个存储但应该是第一个存储。
这是我的工作流程
admin:stud:/demo/stash_demo> ls
a.txt b.txt
admin:stud:/demo/stash_demo> echo Hello World >> a.txt
admin:stud:/demo/stash_demo> git stash save "First"
Saved working directory and index state On master: First
HEAD is now at cff03c6 Initail Commit
admin:stud:/demo/stash_demo> echo Hello World >> b.txt
admin:stud:/demo/stash_demo> git stash save "Second"
Saved working directory and index state On master: Second
HEAD is now at cff03c6 Initail Commit
这些是我可用的藏匿处:
admin:stud:/demo/stash_demo> git stash list
stash@{0}: On master: Second
stash@{1}: On master: First
现在我将尝试应用 stash@{1} 这是第一个 stash 并且应该应用文件 a.txt
admin:stud:/demo/stash_demo> git stash apply `stash@{1}`
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: b.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
如上所示,我应用了最新的更改。
如果我尝试不带刻度线,那么它会给我 foll 错误。
admin:stud:/demo/stash_demo> git stash apply stash@{1}
fatal: ambiguous argument 'stash@1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'