看来,我的一个项目的master
分支进入了一个完全错误的方向。所以我想做的是:
master
并停止旧的master
分支我该怎么做?
我已经看到我可以创建一个新分支branch1
,然后使用
$ git branch -m master old_master
$ git branch -m branch1 master
备份旧的master
,然后将新分支重命名为master
,但我想知道这是否有任何缺点,以及是否有更好的方法来实现我的目标(无论什么& #34;更好"在这种情况下意味着。)
有任何想法或提示吗?
PS:我想要的变化"还原"已被推,所以我不能删除它们。
答案 0 :(得分:1)
1.您必须在主分支上重置为要回滚的sha-id
git reset --hard <commit_id>
您也可以尝试执行 git revert 而不是git reset
PS:如果你想保留历史记录,你可以使用标签名称标记master分支,甚至可以创建一个名为master_old的分支
答案 1 :(得分:1)
你说的方法真的很好。只有在您可以放弃开发历史时才使用硬重置。
基本上,请执行以下操作
git branch -m master old_master
git branch -m branch1 master
完成后,您需要强制推送主人(因为您的本地分支历史记录与远程分支历史记录完全不同)
git push -f origin master
另请注意,如果有多个开发人员在主分支上工作,他们的本地主分支如果执行拉取可能会损坏,因此最好在他们的计算机上重新创建主分支。
git branch -D master
git branch master --track origin/master
强制推送和(可能)重建主分支都需要进行硬重置。