我正在使用我的存储库,修改了一些我使用过的文件后:
git add .
输出为:
Changes to be commited:
new file: path/to/file.txt
modified: path/to/file2.txt
Changes not staged for commit:
deleted: path/to/file/file3.txt
所以我用了
git commit -m 'add and modify file and file2'
这给出了输出:
2 files changed, x insertions, x deletions
所以我做了git status这给出了输出:
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory
deleted:
no changes added to commit (use "git add" and or "git commit -a")
所以在这一点上我做到了:
git rm -r .
因为我认为这将删除所有“已删除”文件,但是这删除了我存储库中的所有内容
然后我做了:
git reset HEAD .
之后,我进行了git log并找到了我最初在本文中所做的提交的提交代码。这只是使我回到了以前的那个提交。
我想要/需要的是在第一次提交“添加并修改文件和文件2”后取回所有文件
从这里可以吗?我不想再玩了,因为我不想进一步搞乱它!谢谢
您正在使用正确的路径git reset HEAD
来还原文件。只要您不提交已删除的文件,就可以简单地添加--hard
选项以将文件也还原到工作目录中:
git reset --hard HEAD
git reset
该git reset
命令能够修改存储库中的三项内容:
HEAD
参考要修改的内容取决于您选择的操作模式:
--soft
仅修改HEAD
参考--mixed
修改HEAD
参考和索引--hard
修改HEAD
参考,索引和工作目录如果在git reset
未指定这三个参数之一的情况下调用,则默认值为--mixed
。这意味着Git将移动HEAD
参考并更新索引,但是将保持您的工作目录不变。
在您的情况下,您想要还原工作目录中的文件,就像在最新提交中一样(由引用HEAD
),因此您需要传递以下--hard
选项:
git reset --hard HEAD
您可以git reset
在出色的博客文章《重置揭秘》中阅读更多有关其工作原理的信息。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句