了解如何将一个GIT仓库插入另一个

时间:2015-04-20 23:32:20

标签: git bitbucket

我希望有人能够解释(尽可能简单的英语!)并指出我在组合GIT回购时的正确方向。我知道这是经常被问到的问题,但我完全迷失了这个问题。

我有一个GIT仓库(本地和远程 - 远程版本在Bitbucket上)让我们称之为Master,它使用四个常见的Gitflow分支。现在我有两个其他的回购,一个处理公共文件,只是由我工作(称为回购A)和另一个正在由同事(回购B)工作和更新。 Repo A托管在Bitbucket上,而B则托管在Github上。

所有三个Repo的文件结构略有不同。让我们说原文具有以下文件夹结构:

\app\controller
\app\assets
\app\models
\app\views

现在我需要获取Repo B的内容并将其添加到\ app \ models中的现有内容,以便不会替换\ app \ models中的现有文件,并且该Repo B仍然单独存在,以及任何未来的更新都可以轻松地提取到我的Master Repo中。回购B还有控制器和视图文件夹,但这些文件夹都是空的。

第二个回购(A)需要拉入主app中当前不存在的\ app \ views \ repoA文件夹。 Repo A仍然需要单独存在,因为它是独立工作的,所以我需要将更改拉下来。目前Repo A中的文件夹结构是简单的\ htmlfiles,其中的文件需要在\ app \ views \ repoA中结束

在这两种情况下,为了使审计试验和文档保持正确,我理想情况下需要保留完整的注释和提交历史记录(如果可能)。使用Repos,我可能需要对Master Repo进行修改并将它们推回到远程原始Repos中。

现在我收集了有关分叉和子树的选项,但我对这些工作方式完全失去了,并且很快就达到了我不想到达的地方#&# 39; ll只需拉下ZIP文件并手动更新!

任何人都可以帮助我指出正确的方向,或者用简单的术语解释做某事的最佳方式吗?我假设可以通过GIT完成所有这些工作并且我没有要求太多!

我想了解不同的GIT选项如何工作以及它们的作用,以便我将来能够完全使用它!

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

合并分歧很大的代码库可能需要做很多工作。

因为你的两个回购是孤立的,结构/布局不同,并不一定要保留回购B的历史,我建议如下:

  1. 让Repo A进入合理的状态。
  2. 从repo A
  3. 创建功能分支
  4. 将Repo B中的代码手动合并到功能分支的代码库中,一次提交一个更改
  5. 合并后,构建并测试一切都符合您的喜好
  6. 查看您的主分支
  7. 将您的功能分支合并/压缩为主
  8. 下一个时间周围:我建议让所有团队成员在他们自己的分支/叉子上工作,但RI / FI定期使用主要仓库 - 至少每2-3天一次,如果代码更改很快,则更频繁。针对经常合并的小变化,而不是跨越多天(或更长)的大的不同变化。