在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