在git中提取不同存储库中的信息

在git中提取不同存储库中的信息,git,version-control,bitbucket,Git,Version Control,Bitbucket,我有n个存储库,其中这些存储库的后端相同,但前端不同。我希望在提交新更改时能有一种方法将新更改传播到其他存储库中。有两个选项可用于将更改从repoN拉到其他N-1存储库(假设更改位于master分支) 选项1:子模块 首先,通过git子模块add/path/to/repoN-1,…,git子模块add/path/to/repoN-1,将其他N-1存储库添加为repoN的子模块 其次,通过git子模块foreach'git remote add repoN/path/to/repoN'将repoN

我有n个存储库,其中这些存储库的后端相同,但前端不同。我希望在提交新更改时能有一种方法将新更改传播到其他存储库中。

有两个选项可用于将更改从repoN拉到其他N-1存储库(假设更改位于
master
分支)

选项1:子模块 首先,通过
git子模块add/path/to/repoN-1
,…,
git子模块add/path/to/repoN-1
,将其他N-1存储库添加为repoN的子模块

其次,通过
git子模块foreach'git remote add repoN/path/to/repoN'
将repoN添加为这些N-1存储库的另一个远程存储库

最后,在提交repoN的更改后,可以执行
git子模块foreach'git fetch repoN&&git cherry pick repoN/master'

选项2:shell脚本 您可以使用shell脚本将更改拉到其他存储库。假设您在repo N中提交了更改,现在您可以执行脚本来更新其他N-1存储库(首先,您需要通过git remote add repoN/path/to/repoN为这些N-1存储库添加remote)。脚本应包含以下功能:

cd /pth/to/repo1
git fetch repoN 
git cherry-pick remoN/master -X theirs

cd /pth/to/repo2
git fetch repoN 
git cherry-pick remoN/master -X theirs
…
cd /pth/to/repoN-1
git fetch repoN
git cherry-pick remoN/master -X theirs

听起来您想为后端创建一个存储库,并让每个前端将后端作为一个依赖项—通过子模块或通过语言的特定管理方式来实现。@Makoto听起来您的评论应该是一个答案。。。举个例子:)我想知道当我对一个子模块进行更改时,推/拉所有子模块的最佳方式?谢谢,你的评论对我帮助很大。