提出这个问题的方法可能不只一种,所以这里是对问题的描述。 我当时正在研究母版,并做了一些工作,然后决定要暂停该工作。 我备份了一些提交,然后从分支开始进行分支工作。 实际上这很好,我现在有一个不同的分支作为我的主要开发分支。 我想知道如何改变周围的环境,以便我再次从事master的工作,但是它没有我的垃圾工作,并且说工作在另一个分支上。
可以要求/解决的一些方法:
如何将我的master分支重命名为其他名称,然后再将其他名称重命名为master?
如何备份master,然后使过去备份的所有提交都位于不同的分支上?
感谢所有(快速)答案! 他们都很好。
除了其他注释之外,您可能会发现-m(move)切换到git-branch很有帮助。您可以将旧的master重命名为其他名称,然后将新分支重命名为master:
1 2
| git branch -m master crap_work
git branch -m previous_master master |
我认为您应该考虑采用不同的开发策略来防止此类问题。最适合我的一种方法是永远不要直接在主分支上进行开发。无论我进行什么更改,我总是为新代码创建一个新分支:
1
| git checkout -b topic/topic_name master |
从那里,我可以将更改发布到公共存储库:
1
| git push pu topic/topic_name |
或最终将其合并回我的master分支中:
1
| git checkout master && git merge topic/topic_name |
如果您确实需要回到较旧的时间点并将其设置为主服务器,则可以将当前分支重命名为其他名称,然后签出较旧的版本作为主服务器:
1 2
| git branch -m master junk
git co -b master old_sha1_value |
从master开始,创建一个名为in-progress的分支,然后将master重置为先前的提交。
1 2
| $ git branch in-progress
$ git reset --hard HEAD^ |
这是相对容易的:
1 2 3 4
| 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 |
一步即可将您的母版设置为任意点:
1
| git checkout -B master new_point |