丢弃分叉中的所有更改并使其与原始版本同步?
discarding all changes in a fork and getting it synced with the original?
我在 github 中对我的分支进行了一些更改。我错误地更改了 fork 的 master,做了很少的提交,然后意识到我必须在那个 bug 分支上创建一个分支和代码,这是我后来做的。然后,在此过程中,我尝试压缩提交并从 master 的 git 日志中删除提交,我想我把一切都搞砸了。我想撤消对我的叉子所做的所有更改,使其与原始版本同步并重新开始我的工作。如何在不删除我的叉子并再次分叉它的情况下做到这一点?
要删除 master
分支中的提交,您只需检出它并重置为您想要的旧提交:
Git checkout master
git reset --hard <ShaOfTheDesiredCommit>
但我很确定您可以保存您的工作,而不必重新制作!
查看 reflog git reflog
并找到提交的引用,然后再用 rebase/squash 搞砸它。
然后你只需要在这个提交上创建一个新的分支来检索你的好工作:
git checkout -b my_branch <ShaOfTheFoundCommit>
我在 github 中对我的分支进行了一些更改。我错误地更改了 fork 的 master,做了很少的提交,然后意识到我必须在那个 bug 分支上创建一个分支和代码,这是我后来做的。然后,在此过程中,我尝试压缩提交并从 master 的 git 日志中删除提交,我想我把一切都搞砸了。我想撤消对我的叉子所做的所有更改,使其与原始版本同步并重新开始我的工作。如何在不删除我的叉子并再次分叉它的情况下做到这一点?
要删除 master
分支中的提交,您只需检出它并重置为您想要的旧提交:
Git checkout master
git reset --hard <ShaOfTheDesiredCommit>
但我很确定您可以保存您的工作,而不必重新制作!
查看 reflog git reflog
并找到提交的引用,然后再用 rebase/squash 搞砸它。
然后你只需要在这个提交上创建一个新的分支来检索你的好工作:
git checkout -b my_branch <ShaOfTheFoundCommit>