Answers:
git reset --hard如果您想丢弃自上次提交以来的所有内容,可以为您提供帮助
git reset --hard HEAD^
应该真的是公认的答案。OP并未询问其他分支机构…
如果您不想进行任何更改,design
并且绝对希望它只与远程分支匹配,则也可以删除该分支并重新创建它:
# Switch to some branch other than design
$ git br -D design
$ git co -b design origin/design # Will set up design to track origin's design branch
我发现做一个合并,忘记结账后后这个问题制定随即。您猜对了:我开始直接在master上修改一些文件。噢!由于我的情况几乎不是唯一的(我们已经做到了,不是吗;->),所以我将提供一种可逆的方式,我过去常常放弃所有更改以使母版看起来像重新开发一样。
在git diff
查看要修改的文件并评估错误范围之后,我执行了:
git stash
git stash clear
在首先存储所有更改之后,接下来将它们清除。对主文件错误的文件所做的所有更改均已消失,并且恢复了奇偶校验。
假设我现在想恢复这些更改。我可以做这个。第一步是找到我刚刚清除/删除的存储的哈希值:
git fsck --no-reflog | awk '/dangling commit/ {print $3}'
学习完哈希后,我成功使用以下方法恢复了未提交的更改:
git stash apply hash-of-cleared-stash
我并不是真的想要恢复这些更改,只是想确认是否可以找回它们,所以我再次清除了它们。
另一种选择是将隐藏应用到其他分支,而不是擦除更改。因此,在清除因使用错误的分支而做出的更改方面,stash
可以为从boo-boo中恢复提供很大的灵活性。
顺便说一句,如果您想要一种可逆的方式来清除分支的更改,则在此用例中,前述操作不太危险。
git reset --hard HEAD^