我确实在我的分支上提交了。
我意外地在其中添加了.tar.gz
个文件,我想忽略它。
然后我做了这个
git reset --soft HEAD^
现在我的提交已经不见了
我如何回到新文件作为未标记文件的位置
答案 0 :(得分:1)
git reset --soft
仅移动HEAD
,但不会重置索引。
git reset @^
会移动HEAD
并重置索引,使这些文件再次未被跟踪。
有关&{34; Can you explain what “git reset” does in plain english?"的那些reset
选项的更多信息。
另请参阅" Difference between git reset soft, mixed and hard"中的一个很好的例子:你想要的是重置HEAD和索引,而不是工作树。
OP user3646965在the comments中提出要求:
我已经执行了git reset --soft
,我可以git reset @^
还是会再回复一次?
然后你可以只对文件进行重置(不是HEAD,它已经引用了正确的提交)
cd /path/to/folder/containing/tar.gz_files
git reset -- *.tar.gz
请注意git命令与文件之间的 double-dash (--
) 。
答案 1 :(得分:0)
您实际上无法通过git重置删除文件,这意味着如果您在最近的提交中添加了新文件,即使您执行git reset --hard HEAD~1
,也会添加新文件您的上一次提交不会被删除。这是git中必不可少的必要预防措施。如果,希望将您的目录恢复到HEAD~1
git意外删除不打算删除的未跟踪文件,该怎么办?
您可以git reset --hard HEAD~1
恢复现有文件的状态。但是,如果您在最近的提交中添加了新文件,则必须自行删除。
答案 2 :(得分:0)
git reset filename
会将filename
的状态重置为当前提交的状态 - 即,它将取消暂存文件。