首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >新的Git回购/分支从现有的3个文件夹结构(理论)

新的Git回购/分支从现有的3个文件夹结构(理论)
EN

Stack Overflow用户
提问于 2014-04-16 13:40:02
回答 2查看 724关注 0票数 1

我试图从我们现有的3文件夹结构(dev,beta,prod)中获得关于如何设置git的验证。我理解输入部件的技术/什么命令。但是如何从三个文件夹创建这三个分支呢?不幸的是,这些不是新的项目,我们可以重新开始与git上,有很多文件已经在发挥。而dev文件夹与beta/prod文件夹有很大的不同。

我们的想法

  1. 在prod文件夹中创建repo,使其成为“主”分支。
  2. 然后创建一个分支“deleting”,这将与master匹配(我们现在还没有进行beta测试,因此忽略/删除beta文件夹)。
  3. 接下来创建一个“dev”分支。
  4. 从文件夹/dev分支中删除文件?
  5. 从dev文件夹中复制文件?
  6. 轨道舞台承诺.?

步骤4-6是有关的部分,我不知道是否删除了从dev文件夹复制的所有文件。

理论上,这将给我们三个分支,我们可以拉/克隆到我们的本地机器。合并到版本中并从dev中得到的驱动必须是交互式的/精心挑选的,我认为我们可以做到这一点。

任何建议都会受到极大的赞赏,即使这是一种叫喊和尖叫的‘不等待,不是那样!’

EN

回答 2

Stack Overflow用户

发布于 2014-04-16 14:11:43

创建一个中央存储库

首先,创建一个存放分支的存储库。对于本例,我将只使用文件系统,但在实践中,这很可能是托管在远程服务器上的:

代码语言:javascript
复制
$ git init --bare project.git

添加prod文件夹

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

代码语言:javascript
复制
$ cd prod
$ git init

创建一个名为“prod”的分支:

代码语言:javascript
复制
$ git checkout -b prod

添加所有文件:

代码语言:javascript
复制
$ git add .
$ git commit -m 'added prod files'

和遥控器:

代码语言:javascript
复制
$ git remote add origin /path/to/project.git

并推动:

代码语言:javascript
复制
$ git push origin prod

添加dev文件夹

更改到dev文件夹并在那里初始化一个git存储库:

代码语言:javascript
复制
$ cd dev
$ git init

添加远程存储库:

代码语言:javascript
复制
$ git remote add origin /path/to/project.git

创建一个新的dev分支:

代码语言:javascript
复制
$ git checkout -b dev 

添加所有文件:

代码语言:javascript
复制
$ git add .
$ git commit -m 'added dev files'

并推动:

代码语言:javascript
复制
$ git push origin dev

添加beta文件夹

对beta文件夹重复相同的过程:

代码语言:javascript
复制
$ 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

克隆您的主存储库

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

代码语言:javascript
复制
$ git clone -b prod /path/to/project.git
$ cd project

这里的-b prod导致git签出prod分支。请查看可用的分支:

代码语言:javascript
复制
$ git branch -a
* prod
  remotes/origin/beta
  remotes/origin/dev
  remotes/origin/prod

现在你们都准备好了。

票数 0
EN

Stack Overflow用户

发布于 2014-04-16 14:16:06

您必须考虑另一种方法,即您所描述的文件夹更好地映射到单独的存储库,而不是单个存储库中的分支,特别是如果dev文件夹与其他存储库有很大的不同(正如您所述)。

您可以为每个分支创建一个回购,将它们作为遥控器添加到其他每一个回购中,并将其合并到开发回购(例如远程dev/master分支)的发布和推动中。随后,在未来,您可以采取进一步的,并将所有的回购作为子模块在一个uber回购。

对于您的问题,在包含所有内容的一个回购中,您似乎关心的是将文件夹中的文件导入到分支中。你可以按以下方式进行:

  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"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23111188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档