GitLab 重命名分支并重新开始另一个
Posted
技术标签:
【中文标题】GitLab 重命名分支并重新开始另一个【英文标题】:GitLab rename branch and start over on another 【发布时间】:2016-05-09 05:24:41 【问题描述】:我刚开始一个新项目,我正在使用带有 SourceTree 的 GitLab。我已经创建了一个分支 (origin\master),但是我错误地使用了这个分支进行开发,所以我将最初的一些更改推送到了这个分支。现在我了解到这个分支实际上应该有生产版本,并且应该使用 origin\develop 分支进行开发。
有什么方法可以将 master 分支重命名为 origin\develop 并以某种方式使用应用程序的原始版本创建一个新的 origin\master 分支?
我是项目中唯一的开发人员,因此不会影响任何人。如果可能的话,如果你能解释一下如何在 SourceTree 中做到这一点,因为我不使用命令行 git。我对 SourceTree 比较熟悉。
【问题讨论】:
也许以后你会发现你实际上做了正确的事——在master上工作。谷歌基于主干的开发和持续交付原则:) linuxize.com/post/how-to-rename-local-and-remote-git-branch 看看这个重命名分支 【参考方案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 版的指令
-
在“BRANCHES”下重命名本地分支
右键单击分支并选择“重命名您的分支的名称”
删除“REMOTES”下的远程分支
右键单击分支并选择“删除来源/分支名称”
将重命名的本地分支推送到 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 develop
是 git checkout -b master <commit>
,其中 以上是关于GitLab 重命名分支并重新开始另一个的主要内容,如果未能解决你的问题,请参考以下文章