首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以类似GNU stow的方式连接两个git repos

以类似GNU stow的方式连接两个git repos
EN

Stack Overflow用户
提问于 2020-05-15 16:16:33
回答 1查看 111关注 0票数 2

我有两个git存储库,它们之间有几个共享子目录,如下所示。

代码语言:javascript
复制
Repo 1                      Repo 2
|-Folder A                  |-Folder A
|  |-docA.c                 |  |-docX.c
|-Folder B                  |-Folder B
|  |-docB.c                 |  |-docY.c
|-Folder C                  |-Folder D
|  |-docC.c                 |  |-docZ.c

现在,我正在尝试创建第三个存储库,它以类似于GNU的方式将repo 2连接到repo 1中。但是,我希望将导入的表单repo 2确认为属于该存储库的文档,以模仿git子模块的行为。据我所知,子模块只允许我从另一个存储库中将整个子文件夹添加到我的项目中。仅供参考,第三个存储库应该具有以下结构:

代码语言:javascript
复制
Repo 3
|-Folder A
|  |-docA.c
|  |-docX.c
|-Folder B
|  |-docB.c
|  |-docY.c
|-Folder C
|  |-docC.c
|-Folder D
|  |-docZ.c

这是否可能实现呢?还是我最好保持两个存储库分开,单独跟踪它们的更改,并在需要时使用GNU?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-15 19:53:27

我不知道你为什么要这么做,但从技术上讲,你可以这样做:

代码语言:javascript
复制
git clone repo1 repo3
cd repo3
git remote rename origin repo1 # less confusing this way
git remote add origin <repo3 url>
git remote add repo2 /path/to/repo2 # or URL
git fetch repo2
git merge --allow-unrelated-histories repo2/master # or whatever branch you use

然后定期:

代码语言:javascript
复制
git fetch repo1
git fetch repo2
git merge repo1/master
git merge repo2/master

只要repo1中的文件和repo2中的文件之间没有冲突,这应该可以工作.然而,提交图(git log --graph)很容易变得混乱。

另一种选择是重基而不是合并:

代码语言:javascript
复制
git clone repo1 repo3
cd repo3
git remote rename origin repo1 # less confusing this way
git remote add origin <repo3 url>
git remote add repo2 /path/to/repo2 # or URL
git pull --rebase repo2 master # or whatever branch you use

然后定期:

代码语言:javascript
复制
git pull --rebase repo1 master
git pull --rebase repo2 master
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61823823

复制
相关文章

相似问题

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