在git中切换分支名称

时间:2008-08-22 05:39:55

标签: git branch

提出这个问题的方法可能不止一种,所以这里是问题的解释。我正在做主人并且做了一些事情,然后我决定把这项工作搁置一边。我支持了一些提交,然后在我开始我的垃圾工作之前分支。实际上这很好用,我刚才有一个不同的分支作为我的主要开发分支。我想知道我怎么能改变周围的事情所以我再次做大师工作,但它没有我的垃圾工作,并说工作是在另一个分支。

有些方法可以提出/解决: 如何将我的主分支重命名为其他内容,然后将其他内容重命名为master? 如何备份master然后导致我已经备份的所有提交都在另一个分支上?

感谢所有(快速)答案!他们都很好。

5 个答案:

答案 0 :(得分:142)

除了其他注释之外,您可能会发现-m(move)切换到git-branch很有帮助。您可以将旧主服务器重命名为其他服务器,然后将新分支重命名为master:

git branch -m master crap_work
git branch -m previous_master master

答案 1 :(得分:31)

我认为您应该考虑采用不同的发展策略来预防此类问题。对我来说似乎最好的一个是永远不要直接在我的主分支上进行开发。无论我正在做什么改变,我总是为新代码创建一个新的分支:

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

答案 2 :(得分:14)

master开始,创建一个名为in-progress的分支,然后将master重置为之前的提交。

$ git branch in-progress
$ git reset --hard HEAD^

答案 3 :(得分:7)

这相对容易:

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

答案 4 :(得分:0)

这会将您的主人设置为一步到位:

git checkout -B master new_point