回滚到最后的提交
我只是做了一个
git commit -m "blah"
然后我添加了一些文件,我如何回滚和删除当前文件中尚未添加/提交的内容?
下面的原始答案是我认为OP在找的东西。 虽然,根据@ChrisNevill的评论,最初的答案可能不是你正在寻找的。 我已经更新了答案,以澄清。
→更新的答案
1)要UNDO本地文件更改但不删除您的上次提交,然后使用
git reset --hard
2)要UNDO本地文件更改并删除您的上次提交,然后使用
git reset --hard HEAD^ or git reset --hard HEAD~
3)要保持本地文件更改, 只删除最后一次提交,然后使用
git reset --soft HEAD^ or git reset --soft HEAD~
经常使用git status
和git log
来观察你的当前状态。
→原来的答案
“重置工作树到最后的提交”
git reset --hard HEAD^
“清除工作树中的未知文件”
git clean
如果你想删除新添加的内容和文件(已添加到索引),那么你可以使用:
git reset --hard
如果你想删除你最近的提交(是与“blah”消息的那个),那么最好使用:
git reset --hard HEAD^
要删除未跟踪的文件(所以新的文件还没有添加到索引)和文件夹使用:
git clean --force -d
git reset --hard
将强制工作目录返回到上次提交并删除新的/已更改的文件。
你可以使用git revert HEAD^
还原到倒数第二次提交。 你也可以指定提交使用id来代替HEAD ^
如果您只想取消提交上次提交,请使用以下命令:
git reset HEAD~
像我的魅力一样工作。
自上次提交以来,对UNDO本地文件更改的简单方法是将它们放在新的分支中:
git branch changes git checkout changes git add . git commit
这留下了新分支的变化。 返回到原始分支find它回到最后一次提交:
git checkout master
新的分支是一个很好的地方,可以练习不同的方法来恢复变化,而不会弄乱原来的分支。