Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
应用用--all创建的git存储_Git_Git Stash - Fatal编程技术网

应用用--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 do
git stash-all
但这是我最初做的!被忽略的文件最终被隐藏,但未从文件系统中删除。
$ git checkout master
$ git stash pop