在git中切换分支名称

时间:2020-03-05 18:41:54  来源:igfitidea点击:

提出这个问题的方法可能不止一种,所以这里是对问题的描述。我当时正在研究母版,并做了一些工作,然后决定要暂停该工作。我备份了一些提交,然后从分支开始进行分支工作。实际上这可以正常工作,我现在有一个不同的分支作为我的主要开发分支。我想知道如何改变周围环境,以便再次使用master,但是它没有我的垃圾工作,并且说工作在另一个分支上。

可以要求/解决的一些方法:
如何将我的master分支重命名为其他名称,然后再将其他名称重命名为master?
如何备份master,然后使过去备份的所有提交都位于不同的分支上?

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

解决方案

回答

这是相对容易的:

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

回答

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

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

回答

除了其他注释之外,我们可能还可以将-m(move)开关切换到git-branch很有帮助。我们可以将旧的master重命名为其他名称,然后将新分支重命名为master:

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

回答

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

git checkout -b topic/topic_name master

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

git push pu topic/topic_name

或者最终将其合并回我的master分支中:

git checkout master && git merge topic/topic_name

如果我们确实需要回到较旧的时间点并将其设置为主数据库,则可以将当前分支重命名为其他名称,然后签出较旧的版本作为主数据库:

git branch -m master junk
 git co -b master old_sha1_value