Git:切换分支时可以将子树指向不同的提交吗?

时间:2013-08-20 21:53:11

标签: git github git-branch git-subtree

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

我很疑惑为什么这个问题已经被遗弃了这么长时间。在尝试重建SVN" externals"依赖。

这里只是为了在互联网上提出另一个答案,我认为可行的方法是创建一个调用git fetch ...git subtree pull ...的脚本以及一个执行此操作的post-checkout hook脚本。我的想法是,脚本在每个分支上都具有相同的名称,因此post-checkout钩子只会调用switch_dependency.py或其他东西,而你手动必须处理正确的命令脚本。