【问题标题】:GitLab rename branch and start over on anotherGitLab 重命名分支并重新开始另一个
【发布时间】:2016-05-09 05:24:41
【问题描述】:

我刚开始一个新项目,我正在使用带有 SourceTree 的 GitLab。我已经创建了一个分支 (origin\master),但是我错误地使用了这个分支进行开发,所以我将最初的一些更改推送到了这个分支。现在我了解到这个分支实际上应该有生产版本,并且应该使用 origin\develop 分支进行开发。

有什么方法可以将 master 分支重命名为 origin\develop 并以某种方式使用应用程序的原始版本创建一个新的 origin\master 分支?

我是项目中唯一的开发人员,因此不会影响任何人。如果可能的话,如果你能解释一下如何在 SourceTree 中做到这一点,因为我不使用命令行 git。我对 SourceTree 比较熟悉。

【问题讨论】:

标签: git gitlab atlassian-sourcetree sourcetree


【解决方案1】:

你可以试试这样的。

git branch -m <old_branch_name> <new_branch_name>

【讨论】:

    【解决方案2】:

    解决此问题的最简单方法是还原提交。如果这是最后一次提交,您可以通过执行以下操作来解决此问题:

    $ git revert HEAD

    如何在源代码树中执行此操作如下:

    http://flummox-engineering.blogspot.com/2014/10/how-to-undo-git-commit-in-sourcetree.html

    现在,在您推送到错误的存储库之前,一切都应该恢复正常。

    【讨论】:

      【解决方案3】:

      SourceTree 2.0.20.1 版的指令

      1. 在“BRANCHES”下重命名本地分支
        • 右键单击分支并选择“重命名您的分支的名称
      2. 删除“REMOTES”下的远程分支
        • 右键单击分支并选择“删除来源/分支名称
      3. 将重命名的本地分支推送到 GitLab
        • 左键点击你重命名的本地分支
        • 点击功能区栏上的“推送”按钮

      【讨论】:

      • 称赞实际解决 SourceTree,如原始问题中所要求的那样。
      • 虽然风险很大.. 如果有任何事情发生,您的进度就会丢失。我宁愿: 1. 从现有分支本地创建一个新分支(只需单击顶部菜单栏中的分支)-> 为其命名,将新分支推送到远程,上传后删除本地旧分支并打开遥控器
      【解决方案4】:

      你可以试试这样的。答案从 this great answer 修改,以满足 OP 的需求。

      git branch -m master develop    # rename master on local
      git push origin :master         # delete master on remote
      git push origin develop         # create develop on remote
      git checkout -b master develop  # create a new local master on top of develop
      git push origin master          # create master on remote
      

      【讨论】:

      • 不应该 git checkout -b master developgit checkout -b master &lt;commit&gt;,其中 是最初在 master 上的最后一次提交?
      • 是的,如果 OP 知道这些细节,那就太好了!
      • 我不知道我可以像那样删除遥控器上的分支 - 太好了!我只是想重命名一个我已经推出的开发分支,并且使用前 3 个步骤(使用我的开发分支名称)效果很好!
      • OP 明确表示他的“主人”应该反映“应用程序的原始版本”,这意味着他知道这是什么提交 - 或者甚至可能是他的存储库中的第一次提交。所以我认为你应该加强你的答案(否则很好!)不要在“开发”之上重新创建主 - 而是在另一个提交或分支之上。
      猜你喜欢
      • 2011-08-19
      • 2021-12-06
      • 2017-08-04
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 2021-03-20
      • 2021-12-24
      • 2022-08-09
      相关资源
      最近更新 更多