如何克隆 git 裸仓库并更改分支名称
Posted
技术标签:
【中文标题】如何克隆 git 裸仓库并更改分支名称【英文标题】:How to clone a git bare repo and change branch names 【发布时间】:2013-11-25 10:20:30 【问题描述】:我在服务器上有一个 git repo,我们把它命名为 project.git
我正在将项目的一部分分离成一个单独的、独立的项目和 git repo(让我们命名为 subproject.git)。
我仍然希望 subproject.git 历史记录包含原始 project.git 中的历史记录。所以我开始这种分离的方法是在 project.git 上创建一个名为 subproject 的分支。
现在我想在服务器上创建另一个裸repo(subproject.git),但是在这个repo上让子项目分支成为master分支,并将原来的master分支重命名为别的东西(即:old-master)
我想我知道如何在本地副本上执行此操作,但我不确定如何创建新的裸存储库以使其在服务器上发生。
有什么建议吗?
【问题讨论】:
【参考方案1】:这样想:本地和服务器副本是同一个存储库。看来您仍在考虑旧的 C/S 方式。
我建议创建一个新项目,将现有项目作为子项目拉入。 (这里有很多关于这个的线程。)然后把整个烂摊子推过去。
现在,我知道您在想什么:我的建议意味着您将失去所有历史记录。没有。
这是一个关于在将项目变为子时保留历史的线程:How to Migrate Git Projects to Be One Project with Subprojects。
【讨论】:
【参考方案2】:如果我必须这样做,我可能会这样做
我把这个项目称为“first-project.git”
-
我将克隆项目并将其命名为“second-project.git”
将在 second-project.git 的本地副本中创建一个新的分支“future-master”
将在本地副本中进行我的所有更改并进行提交,然后按照“如何删除主分支”进行操作
链接-How do I rename my git 'master' branch to 'release'?
注意:如果您不想从 second-project.git 中删除 master - 只需创建一个 master 的新分支并将其命名为“old-master”
希望这会有所帮助!!
【讨论】:
以上是关于如何克隆 git 裸仓库并更改分支名称的主要内容,如果未能解决你的问题,请参考以下文章