在git中切换分支名称

在git中切换分支名称

Switch branch names in git

提出这个问题的方法可能不只一种,所以这里是对问题的描述。 我当时正在研究母版,并做了一些工作,然后决定要暂停该工作。 我备份了一些提交,然后从分支开始进行分支工作。 实际上这很好,我现在有一个不同的分支作为我的主要开发分支。 我想知道如何改变周围的环境,以便我再次从事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


推荐阅读