题
提出这个问题的方法可能不止一种,因此这里是对该问题的描述。我当时正在做 master 工作,并提交了一些东西,然后决定暂停这项工作。我备份了一些提交,然后从开始我的垃圾工作之前分支出来。实际上,这工作得很好,我现在有一个不同的分支作为我的主要开发分支。我想知道如何改变事情,所以我再次在 master 上工作,但它没有我的垃圾工作,并且说工作在不同的分支上。
可以通过一些方式询问/解决这个问题:如何将我的 master 分支重命名为其他分支,然后将其他分支重命名为 master ?如何备份 master,然后使我过去备份的所有提交都位于不同的分支上?
感谢您的所有(快速)回答!他们都很好。
解决方案
除了其他评论之外,您可能会发现 -m (移动)切换到 git-branch 很有帮助。您可以将旧的 master 重命名为其他名称,然后将新分支重命名为 master:
git branch -m master crap_work
git branch -m previous_master master
其他提示
我认为您应该考虑采用不同的开发策略来防止出现此类问题。对我来说最有效的方法是永远不要直接在我的主分支上进行开发。无论我做出什么更改,我总是为新代码创建一个新分支:
git checkout -b topic/topic_name master
从那里,我可以将更改推送到公共存储库:
git push pu topic/topic_name
或者最终将其合并回我的主分支:
git checkout master && git merge topic/topic_name
如果您确实需要返回到较旧的时间点并将其设置为您的主控,您可以将当前分支重命名为其他名称,然后签出旧版本作为您的主控:
git branch -m master junk git co -b master old_sha1_value
开始 master
, ,创建一个名为 in-progress
, ,然后重置 master
到较早的提交。
$ git branch in-progress
$ git reset --hard HEAD^
这相对容易:
git checkout -b fake_master master # fake_master now points to the same commit as master
git branch -D master # get rid of incorrect master
git checkout -b master real_master # master now points to your actual master
git checkout master # optional -- switch on to your master branch
这将一步将您的主人设置为任意一点:
git checkout -B master new_point
不隶属于 StackOverflow