在git中切换分支名称

可能有不止一种方法来问这个问题,所以这里是对问题的解释。 我当时在做主人,做了一些事情,然后决定暂时搁置这项工作。 我支持了一些提交,然后从我开始我的垃圾工作之前分支。 实际上这工作得很好,我现在有一个不同的分支作为我的主要发展分支。 我想知道如何能够改变事情,所以我再次在主人的工作,但它没有我的垃圾工作,并表示工作是在不同的分支。

一些方法可以被问到/解决:我如何重命名我的主分支到其他东西,然后重命名其他东西掌握? 我如何备份主,然后导致我已经备份的所有提交到不同的分支?

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

除了其他的评论,你可能会发现-m(move)切换到git-branch有帮助。 你可以重命名你的老主人到别的地方,然后重命名你的新主人:

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

我认为你应该考虑一个不同的发展战略,以防止这样的问题。 一个似乎最适合我的工作就是不要直接在我的主分支上进行开发。 无论我所做的更改如何,我总是为新代码创build一个新的分支:

 git checkout -b topic / topic_name master

从那里,我可以推出公共仓库的变化:

 git push pu topic / topic_name

或者最终只是将它合并回我的主分支:

 git checkout master && git merge topic / topic_name

如果你真的需要回到一个较早的时间点,并将其设置为你的主人,你可以将当前分支重命名为其他东西,然后签出一个老版本作为你的主人:

 混帐分支-m主垃圾
  git co -b master old_sha1_value

master启动,创build一个名为in-progress的分支,然后将master重置为先前的commit。

 $ 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