【发布时间】:2013-09-20 00:06:42
【问题描述】:
下面显示了两个 git 存储库。第一个结构类似于典型的 python 项目。
foo_repo/
.git/
setup.py
foo/
__init__.py
some_code.py
tests/
bar/
.git/
我想将foo_repo/foo/ 目录作为子树包含在bar/ 中,并且我希望能够将对foo_repo/foo/some_code.py 的更新从foo_repo 存储库合并到bar,反之亦然。
初始设置还不错。从我使用的foo/ 目录:
git subtree --prefix=foo/ split -b export
然后我在 foo_repo 中有一个新分支,其中只有 foo_repo/foo/ 目录的内容。要将它带入酒吧,我只需转到bar/ 目录并:
git subtree --prefix=foo/ add ../foo_repo/.git export
现在我已经准备好了,我想做一些代码开发并在两个 repos 中保持foo/ 的最新状态。从酒吧推我想我已经想通了。来自bar/目录:
touch foo/more_code.py
git add foo/more_code.py
git commit -m "more code"
git subtree --prefix=foo/ push ../foo_repo/.git export
然后从foo_repo/目录:
git checkout master
git subtree --prefix=foo/ merge export
合并另一种方式是我卡住的地方。来自foo_repo/:
git checkout master
touch foo/yet_more_code.py
git add foo/yet_more_code.py
git commit -m "yet more code"
???
其中??? 是将foo/ 目录与export 分支合并的命令。然后来自bar/:
git subtree --prefix=foo/ pull ../foo_repo/.git export
所以我基本上是在寻找??? 点中的行,或者做同样事情的不同工作流程。我试过重复git subtree --prefix=foo/ split -b export_foo,但它不起作用。
【问题讨论】:
标签: git github git-merge git-subtree