从回滚点回滚 git master 存储库和分支提交

从回滚点回滚 git master 存储库和分支提交

我设置了一个 Git 存储库。这个存储库有近 700 个提交,但所有提交都在分支中master。我想采取一种方法,将这个master分支(此回滚涉及大约 50 个提交)回滚到较早的点,以使其停留在那里从该点开始,将所有后续的提交分支到一个单独的分支中。

图解

当前状态:

|-.---.---.---.---.---.---.---.---+ master
 aaa bbb ccc ddd eee fff ggg hhh  HEAD

期望状态:

|-.---.---.--\-|  master
 aaa bbb ccc  \
               \
                \.---.---.---.---.---+ seperate-branch
                ddd eee fff ggg hhh  HEAD

这样,master分支就会回滚到ccc提交,并且从该点(及以后)的每个提交ddd都会移入seperate-branch

我对 Git 还很陌生,但已经达到了熟练水平,但这种高级用法仍然超出了我的理解范围。我使用 Ubuntu 11.04 作为我的系统。存储库(除了本地存储外)还设置remote为 GitHub(如果这有任何区别的话)。

答案1

你需要知道你想要回滚到的提交,我称之为SHA1

git checkout -b seperate-branch
git checkout master
git reset SHA1 --hard

您已经完成。

要将其推送到 GitHub,你需要执行以下操作

git push --force origin master

相关内容