我刚做了一个
git commit -m "blah"
然后我添加了一些文件,如何回滚并删除当前文件中尚未添加/提交的内容?
答案 0 :(得分:184)
以下 ORIGINAL 答案是我认为 OP 正在寻找的答案。虽然根据@ChrisNevill的评论,原始答案可能不是你正在寻找的。我已经更新了答案以澄清。
→更新的答案
1) UNDO 本地文件更改但 NOT REMOVE 您的上一次提交
git reset --hard
2) UNDO 本地文件更改 AND REMOVE 您的上次提交
git reset --hard HEAD^
3)保持本地文件更改仅删除上次提交
git reset --soft HEAD^
→原始答案
“将工作树重置为上次提交”
git reset --hard HEAD^
“清除工作树中的未知文件”
git clean
答案 1 :(得分:45)
如果要删除已添加的新添加的内容和文件(添加到索引中),请使用:
git reset --hard
如果你想删除你的最新提交(是带有“blah”消息的提交),那么最好使用:
git reset --hard HEAD^
要删除未跟踪的文件(因此尚未添加到索引中的新文件)和文件夹使用:
git clean --force -d
答案 2 :(得分:13)
git reset --hard
将强制工作目录返回上次提交并删除新的/已更改的文件。
答案 3 :(得分:3)
您可以使用git revert HEAD^
恢复提交,以恢复到倒数第二次提交。您还可以使用id而不是HEAD ^
答案 4 :(得分:1)
自上次提交以来UNDO本地文件更改的一种简单万无一失的方式是将它们放置在新分支中:
git branch changes
git checkout changes
git add .
git commit
这将在新分支中留下更改。返回原始分支,找回最后一次提交:
git checkout master
新分支是练习不同方法来恢复变更的好地方,而不会弄乱原始分支。
答案 5 :(得分:0)
如果您想要取消提交最后一次提交,请使用:
git reset HEAD~
对我来说就像魅力一样。