从主存储库创建子存储库Git

时间:2017-09-09 15:08:36

标签: git bitbucket git-merge resx

我们在Bitbucket上有一个大型解决方案(大约1.5gb),其中resx个文件位于3个单独的文件夹中。从这个存储库我希望能够将所有resx文件推送到另一个存储库(即翻译存储库)。

这样翻译人员可以单独处理这些文件(单独处理),然后将它们合并回原始存储库。

我最初的想法是使用.gitignore创建第二个存储库,根据答案here,忽略除resx文件之外的所有内容。

# Ignore everything
*

# Don't ignore directories, so we can recurse into them
!*/

# Don't ignore .gitignore
!.gitignore

# Now exclude our type
!*.resx

然后我们可以使用(根据答案here)在它们之间混合文件?

$: git remote add local ../AnotherRepo
$: git fetch local
$: git merge local/master

但是,我认为这会将两个存储库视为两个具有各自独立历史记录的文件结构?

有没有更有效的方法我可以使用git来实现上述目标并保持两个存储库同步并在它们之间合并?理想情况下,使用翻译库作为主存储库的子存储库吗?

1 个答案:

答案 0 :(得分:2)

我在an earlier answer写了这篇文章,这应该说清楚,但Git支持submodules,这应该是一种可能的解决方案。

基本上,您可以添加一个存储库作为另一个存储库的子模块。每个存储库都是完全独立的,但可以包含其他存储库。然后,您可以使用--recursive标志克隆父存储库以包含子模块。这样,如果符合逻辑,就可以将组件分开。

在您的情况下,您可能想要做的是为翻译创建一个或多个单独的存储库,并将它们设置为应用程序的子模块。

Pro Git book是查找有关子模块的更多信息的好地方。