新Git仓库/分支从现有的3文件夹结构(理论)

时间:2014-04-16 13:40:03

标签: git

我正在尝试验证如何从我们现有的3文件夹结构(dev,beta,prod)设置git repo。我理解技术/键入部分的命令。但是如何从3个文件夹中创建3个分支。不幸的是,这些不是新项目,我们可以通过git开始新鲜,有很多文件已经在播放。并且dev文件夹与beta / prod文件夹有很大不同。

我们的想法

  1. 在prod文件夹中创建repo,使其成为“master”分支。
  2. 然后创建一个分支'release',这将与master匹配(我们现在没有进行beta测试,所以无视/删除beta文件夹)。
  3. 接下来创建一个'dev'分支。
  4. 从文件夹/ dev分支中删除文件?...
  5. 从?...
  6. 中的dev文件夹中复制文件
  7. 跟踪,分阶段,提交......?
  8. 步骤4-6 是相关部分,我不知道是否删除所有文件然后从dev文件夹中复制将丢失任何内容

    理论上,这将为我们提供三个可以拉/克隆到本地机器的分支。从dev开始合并到发布和prod中需要进行交互式/挑选,我认为我们可以管理它。

    任何建议都非常感谢,即使它是一种大喊大叫的“不等待,不是那种方式!”

2 个答案:

答案 0 :(得分:0)

创建中央存储库

首先创建一个存放分支机构的存储库。对于这个例子,我只是要使用文件系统,但实际上这可能会托管在远程服务器上:

$ git init --bare project.git

添加prod文件夹

切换到您的prod目录并在那里初始化git存储库:

$ cd prod
$ git init

创建一个名为" prod"的分支:

$ git checkout -b prod

添加所有文件:

$ git add .
$ git commit -m 'added prod files'

遥控器:

$ git remote add origin /path/to/project.git

推动:

$ git push origin prod

添加开发文件夹

切换到您的dev文件夹并在那里初始化git存储库:

$ cd dev
$ git init

添加远程存储库:

$ git remote add origin /path/to/project.git

创建一个新的dev分支:

$ git checkout -b dev 

添加所有文件:

$ git add .
$ git commit -m 'added dev files'

推动:

$ git push origin dev

添加测试版文件夹

对您的测试版文件夹重复相同的过程:

$ cd beta
$ git init
$ git remote add origin /path/to/project.git
$ git checkout -b beta
$ git add .
$ git commit -m 'added beta files'
$ git push origin beta

克隆主存储库

从裸存储库创建工作副本:

$ git clone -b prod /path/to/project.git
$ cd project

此处的-b prod会导致git签出prod分支。 看看可用的分支机构:

$ git branch -a
* prod
  remotes/origin/beta
  remotes/origin/dev
  remotes/origin/prod

现在你已经准备好了。

答案 1 :(得分:0)

您必须考虑替代方案,您描述的文件夹更好地映射到单独的存储库而不是单个存储库中的分支,特别是如果dev文件夹与其他文件夹明显不同。 / p>

你可以为每个分支创建一个repo,在每个其他repo中将它们作为remotes添加,并且从dev repo(比如一个远程dev/master分支)合并到release和prod中可以是一个樱桃挑选仍然。随后将来你可以更进一步,将所有的回购作为超级回购中的子模块处理。


对于您的问题,在包含所有内容的一个仓库中,您似乎关心将文件夹中的文件导入分支。您可以按以下步骤操作:

  1. 创建分支

    master$ git co -b devb

  2. 将文件夹复制到

    devb$ cp -r /path/to/external/dev dev

  3. 将文件夹和文件递归添加到git

    devb$ git add dev

  4. 提交结果

    devb$ git commit -m "initial dev commit"