我正在尝试验证如何从我们现有的3文件夹结构(dev,beta,prod)设置git repo。我理解技术/键入部分的命令。但是如何从3个文件夹中创建3个分支。不幸的是,这些不是新项目,我们可以通过git开始新鲜,有很多文件已经在播放。并且dev文件夹与beta / prod文件夹有很大不同。
我们的想法
步骤4-6 是相关部分,我不知道是否删除所有文件然后从dev文件夹中复制将丢失任何内容
理论上,这将为我们提供三个可以拉/克隆到本地机器的分支。从dev开始合并到发布和prod中需要进行交互式/挑选,我认为我们可以管理它。
任何建议都非常感谢,即使它是一种大喊大叫的“不等待,不是那种方式!”
答案 0 :(得分:0)
首先创建一个存放分支机构的存储库。对于这个例子,我只是要使用文件系统,但实际上这可能会托管在远程服务器上:
$ git init --bare project.git
切换到您的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中可以是一个樱桃挑选仍然。随后将来你可以更进一步,将所有的回购作为超级回购中的子模块处理。
对于您的问题,在包含所有内容的一个仓库中,您似乎关心将文件夹中的文件导入分支。您可以按以下步骤操作:
创建分支
master$ git co -b devb
将文件夹复制到
devb$ cp -r /path/to/external/dev dev
将文件夹和文件递归添加到git
devb$ git add dev
提交结果
devb$ git commit -m "initial dev commit"