如何克隆git bare repo并更改分支名称

时间:2013-11-13 00:57:41

标签: git branch

我在服务器上有一个git repo,让我们将它命名为project.git

我正在将项目的一部分分成一个独立的独立项目和git repo(让我们命名为subproject.git)。

我仍然希望subproject.git历史记录在origin project.git中包含历史记录。所以我开始这种分离的方法是在project.git上创建一个名为subproject的分支。

现在我想在服务器上创建另一个裸仓库(subproject.git),但是让子项目分支成为这个仓库的主分支,并将原始主分支重命名为其他东西(即:old-master)

我想我知道如何在我的本地副本上执行此操作,但我不确定如何创建新的裸仓库以使其在服务器上发生。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

以这种方式思考:本地和服务器副本是相同的存储库。好像你还在考虑旧的C / S方式。

我建议创建一个新项目,将现有项目作为子项拉入。 (关于这一点有很多线索。)然后就把整个混乱推到一边。

现在,我知道你在想什么:我的建议意味着你将失去你所有的历史。不。

这是一个关于在将项目变为子项时保留历史记录的主题:How to Migrate Git Projects to Be One Project with Subprojects

答案 1 :(得分:0)

如果必须这样做,我可能会这样做

我把这个项目称为“first-project.git”

  1. 我将克隆该项目将其称为“second-project.git”
  2. 将在second-project.git
  3. 的本地副本中创建一个新的分支“future-master”
  4. 将在本地副本中执行所有更改并执行提交,然后按照“如何删除主分支”进行操作 链接 - How do I rename my git 'master' branch to 'release'?
  5. note :如果您不想从second-project.git中删除主服务器 - 只需创建一个新的master分支并将其命名为“old-master”
  6. 希望这会有所帮助!!