我正在编写一个Web开发教程。在其中,一个学生从一个名为“ chapter-1-start”的git分支开始,当她完成该教程章节中的步骤时,她的代码应与“ chapter-1-complete”中的代码基本相同。我想在“ lib / reference_app”之类的目录中的“ chapter-1-start”分支中包含“ chapter-1-complete”,以便她可以比较或在必要时剪切并粘贴从complete到开始的文件。这是我的目标:
我认为这对于子模块是可行的,但是没有经验。我担心通过输入递归引用会丢失整个git历史。
答案 0 :(得分:2)
我过去做过的一个技巧是为特定分支为子模块添加相同的回购协议:请参见“ Copying Doxygen Documentation from gh-pages branch into a subfolder of Master branch”。
在您的情况下,学生可以在自己的存储库中执行以下操作:
git branch chapter-1-complete origin/chapter-1-complete
git checkout chapter-1-start
git submodule add -b chapter-1-complete -- /remote/url/of/your/own/repo
git commit -m "ADd chapter-1-complete branch as submodule"
git push
然后在git submodule update --remote
中完成的简单chapter-1-start
就足以更新chapter-1-complete
子文件夹(子模块的根目录)的内容。请参阅“ git submodule follows branch”。