【问题标题】:Switch branch names in git在 git 中切换分支名称
【发布时间】:2010-09-06 12:23:53
【问题描述】:

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

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

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

【问题讨论】:

    标签: git branch


    【解决方案1】:

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

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

    【讨论】:

    • 根据您的工作流程,您可能还想更改 .git/config 中的任何分支引用。我将[branch "crap_work"] 更改为[branch "master"],这样master 仍将与origin/master 同步。当然,这两个 repos 的状态是这样的,这仍然是有道理的。
    • 这不会重命名远程仓库上的分支,只在本地仓库上。
    • @smohadjer 要重命名遥控器,您可以使用git push -uf origin mastergit push -u origin crap_work
    【解决方案2】:

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

    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

    【讨论】:

    • 这是个好政策。想想看,我在别处见过这种做法。谢谢。
    【解决方案3】:

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

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

    【讨论】:

    • 我认为这没有理由被否决。在我了解了 branch -m 并意识到 master 并不是一成不变地作为分支的永久名称之前,我自己做了几次。
    【解决方案4】:

    这比较容易:

    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 创建一个分支使其处于活动状态。
    【解决方案5】:

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

    git checkout -B master new_point
    

    【讨论】:

      猜你喜欢
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 2021-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-07
      • 2015-08-25
      相关资源
      最近更新 更多