在具有两个分支(master& develop)和文件夹shared
中包含的git子树存储库的存储库中,是否可以自动将shared
子树同步到特定版本(提交)改变分支?
我最好的猜测是,当我在本地更改分支时,我可能正在寻找运行脚本的方法。然后,该脚本在子树上执行必要的git pull / fetch命令。
假设主分支应始终指向共享子树存储库的v1.0标记提交,而开发分支始终检出最新提交。对共享子树的编辑仅在开发分支中进行,并且在切换到主服务器之前将被提交(或存储)。
答案 0 :(得分:0)
是的,您可以将每个分支中的子树指向不同的代码版本。子树的状态与任何其他文件集一样属于提交,这意味着一个分支可以在子树中具有与其他分支不同的内容。在结账时,子树的状态将再次与该分支上的任何内容一起更新,就像任何其他文件一样。
最简单的方法是在master
中创建一个子树,从master
创建一个分支,并在分支中更新所述子树并提交。因此,分支将具有子树的修改版本,如果您签出master
,它将恢复到之前留在master
中的状态。
答案 1 :(得分:0)
我很疑惑为什么这个问题已经被遗弃了这么长时间。在尝试重建SVN" externals"依赖。
这里只是为了在互联网上提出另一个答案,我认为可行的方法是创建一个调用git fetch ...
和git subtree pull ...
的脚本以及一个执行此操作的post-checkout hook脚本。我的想法是,脚本在每个分支上都具有相同的名称,因此post-checkout钩子只会调用switch_dependency.py
或其他东西,而你手动必须处理正确的命令脚本。