如何克隆 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 裸仓库并更改分支名称的主要内容,如果未能解决你的问题,请参考以下文章

git:使用(本地)远程存储库

Git相关操作四

Mac上使用Git指南

如何同步两个 git 裸存储库?

Git使用命令

如何在 Git 中创建新的本地分支?