由于一些糟糕的选择,我的本地Git存储库目前比原始库提前了五次提交,并且状态不佳。我想摆脱所有这些承诺,重新开始。

很明显,删除我的工作目录并重新克隆就可以了,但再次从GitHub下载所有内容似乎太过了,而且没有很好地利用我的时间。

也许git-restore是我需要的,但我不想在源代码之前提交10次(甚至6次),即使它确实将代码本身恢复到正确的状态。我只想假装最后半小时从未发生过。

有一个简单的命令可以做到这一点吗?这似乎是一个明显的用例,但我找不到任何例子。


请注意,这个问题专门针对提交,而不是:

未跟踪的文件未分级更改已分段但未提交的更改


当前回答

您可以使用此git命令

git reset --hard origin/<branch_name>

其他回答

对于未被推送的本地提交,还可以使用gitrebase-i删除或压缩提交。

对于所有未标记的更改,git checkout--。

对于特定文件git checkout--路径/to/file/to/revert

如果您的分支比“origin/XXX”领先5次提交。

您可以发布:

git reset --hard HEAD~5

它应该删除最后5个提交。

更新时间:

您可以在此处使用新的GIT LFS:https://git-lfs.github.com/

git lfs migrate import --include="*.file_type"

然后git push

Try:

git reset --hard <the sha1 hash>

将你的头重置到你想去的任何地方。使用gitk查看你想去哪一个提交。你也可以在gitk内重置。