应用用--all创建的git存储
我意外地用应用用--all创建的git存储,git,git-stash,Git,Git Stash,我意外地用--all选项创建了一个git存储,根据文档 如果改为使用--all选项,则除了未跟踪的文件外,还将隐藏和清理被忽略的文件 因此,现在使用git stash pop恢复我的更改失败: some/ignored/file already exists, no checkout Could not restore untracked files from stash (我实际上应该做的是使用——包括未跟踪的) git stash show-p仍然列出我的更改,没有任何被忽略的文件。如果g
--all
选项创建了一个git存储,根据文档
如果改为使用--all
选项,则除了未跟踪的文件外,还将隐藏和清理被忽略的文件
因此,现在使用git stash pop
恢复我的更改失败:
some/ignored/file already exists, no checkout
Could not restore untracked files from stash
(我实际上应该做的是使用——包括未跟踪的)
git stash show-p
仍然列出我的更改,没有任何被忽略的文件。如果git不尝试恢复被忽略的文件,我如何应用我的存储
编辑:我刚刚创建了一个测试存储库,并做了一个git隐藏--all
。忽略的文件被隐藏并从文件系统中删除。我的问题是,在我上面的例子中,它们被隐藏了,但没有从文件系统中删除,因此这似乎是问题的原因。您应该删除这些文件以弹出隐藏。您可以手动执行,也可以采用以下方法:
git stash -all # make a new stash
git stash pop stash@{1} # apply your original stash
如果您喜欢,您可以放弃您所做的新存储:
git stash drop
使用日志查找存储的提交哈希
$ git log --graph --all --decorate --oneline
所有这些都很重要,因为它也显示了藏品
它应该看起来像这样
*-. cd5e9ae (refs/stash) WIP on master: cd48088 Fixed GET chats output
|\ \
| | * e48d0d7 untracked files on master: cd48088 Fixed GET chats output
| * 1a3bf97 index on master: cd48088 Fixed GET chats output
|/
* cd48088 (HEAD, origin/master, master) Fixed GET chats output
现在,您要检查存储的顶部(这里是cd5e9ae)
您将处于分离的头部状态
将其重置一步,保留更改
$ git reset HEAD~1
现在把它藏起来,就像你想的那样
$ git stash --include-untracked
现在您可以回到master或任何您正在工作的地方,应用新的正确存储
$ git checkout master
$ git stash pop
灵感来自
我刚刚测试了它,它在我的项目中使用了我忽略的文件,应该也适用于您。为什么不想还原忽略的文件?我不想,我用错误的参数创建了隐藏,现在git也想还原忽略的文件。我不关心被忽略的文件。如果您从工作台删除被忽略的文件,然后尝试从隐藏中弹出呢?这应该行得通……这是真的,但我想必须有一个合适的方法来做到这一点。我的情况并非如此,但被忽略的文件可能在创建隐藏后发生了更改,您不希望丢失这些更改。请参阅上面的OP注释:这是真的,但我认为必须有一种正确的方法来完成此操作。我的情况不是这样,但被忽略的文件可能在创建存储后发生了更改,您不想丢失这些更改。git stash-u
不会删除这些文件,因为正如我所说,它们被忽略了。他应该备份/移动它们。@amiuhle dogit stash-all
但这是我最初做的!被忽略的文件最终被隐藏,但未从文件系统中删除。
$ git checkout master
$ git stash pop