在 git 的不同存储库中提取信息
Pull information in different repositories in git
我有 n 个存储库,其中它们具有相同的后端但具有不同的前端。我希望有一种方法可以在我提交新更改时在其他存储库中传播新更改。
您可以通过两种方式将更改从 repoN 提取到其他 N-1 个存储库(假设更改在 master
分支上)。
选项 1:子模块
首先,通过 git submodule add /path/to/repo1
,...,git submodule add /path/to/repoN-1
.
添加其他 N-1 个存储库作为 repoN 的子模块
其次,通过 git submodule foreach 'git remote add repoN /path/to/repoN'
.
添加 repoN 作为这 N-1 个存储库的另一个远程
最后,在您提交 repoN 的更改后,您可以执行 git submodule 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 个存储库添加远程)。该脚本应包含以下函数:
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
我有 n 个存储库,其中它们具有相同的后端但具有不同的前端。我希望有一种方法可以在我提交新更改时在其他存储库中传播新更改。
您可以通过两种方式将更改从 repoN 提取到其他 N-1 个存储库(假设更改在 master
分支上)。
选项 1:子模块
首先,通过 git submodule add /path/to/repo1
,...,git submodule add /path/to/repoN-1
.
其次,通过 git submodule foreach 'git remote add repoN /path/to/repoN'
.
最后,在您提交 repoN 的更改后,您可以执行 git submodule 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 个存储库添加远程)。该脚本应包含以下函数:
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