105

可能有不止一种方法可以问这个问题,所以这里是对这个问题的描述。我正在研究master并提交了一些东西,然后我决定暂停这项工作。我备份了一些提交,然后从我开始我的垃圾工作之前分支。实际上这很好用,我现在有一个不同的分支作为我的主要开发分支。我想知道如何改变事情,所以我再次在 master 上工作,但它没有我的垃圾工作,并且说工作在不同的分支上。

可以询问/解决的一些方法:如何将我的 master 分支重命名为其他内容,然后将其他内容重命名为 master?如何备份 master 然后导致我备份过去的所有提交都在不同的分支上?

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

4

5 回答 5

146

除了其他评论之外,您可能会发现 -m(移动)切换到 git-branch 很有帮助。您可以将旧主分支重命名为其他名称,然后将新分支重命名为主分支:

git branch -m master crap_work
git branch -m previous_master master
于 2008-08-22T07:33:28.983 回答
31

我认为您应该考虑采用不同的开发策略来防止此类问题。似乎最适合我的一种方法是永远不要直接在我的主分支上进行开发。不管我做出什么改变,我总是为新代码创建一个新分支:

git checkout -b 主题/主题名主

从那里,我可以将更改推送到公共存储库:

git push pu 主题/主题名称

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

git checkout master && git merge topic/topic_name

如果您确实需要回到较旧的时间点并将其设置为您的 master,您可以将当前分支重命名为其他内容,然后签出较旧的版本作为您的 master:

git branch -m master junk
 git co -b master old_sha1_value
于 2008-08-23T05:16:32.177 回答
14

从 开始master,创建一个名为 的分支in-progress,然后重置master为较早的提交。

$ git branch in-progress
$ git reset --hard HEAD^
于 2008-08-22T06:51:10.037 回答
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
于 2008-08-22T06:40:04.917 回答
0

这将一步一步将您的主人设置为任何一点:

git checkout -B master new_point
于 2012-08-18T18:28:45.933 回答