0

在具有两个分支(master 和 develop)的存储库和文件夹中包含的 git 子树存储库中shared,是否可以shared在更改分支时自动将子树同步到特定版本(提交)?

我最好的猜测是,每当我在本地更改分支时,我可能正在寻找一种运行脚本的方法。然后该脚本在子树上执行必要的 git pull/fetch 命令。

假设主分支应该始终指向共享子树存储库的 v1.0 标记提交,而开发分支始终签出最新提交。对共享子树的编辑仅在开发分支中进行,并将在切换到主分支之前提交(或隐藏)。

4

2 回答 2

0

我很困惑为什么这个问题被放弃了这么久。在尝试重建 SVN“外部”依赖项时,我在 SVN-Git 迁移中遇到了同样的问题。

只是在这里将另一个答案放到互联网上,我认为要走的路是创建一个脚本调用git fetch ...以及git subtree pull ...一个执行该脚本的结帐后挂钩。我的想法是脚本在每个分支上都具有相同的名称,因此 post-checkout 挂钩只会做调用switch_dependency.py或其他操作,您必须手动处理该脚本中的正确命令。

于 2014-10-21T12:40:23.403 回答
0

是的,您可以让每个分支中的子树指向不同的代码版本。子树的状态与任何其他文件集一样属于提交,这意味着一个分支可以在子树中具有与其他分支不同的内容。签出时,子树的状态将再次更新为该分支上的任何内容,就像任何其他文件一样。

显示这一点的最简单方法是在 中创建一个子树master,从 中创建一个分支master,然后在分支中更新所述子树并提交。因此,分支将具有子树的修改版本,如果您签出master,它将恢复到之前在master.

于 2013-09-05T06:06:37.837 回答