我不清楚以下是什么意思(来自git submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
组件驱动开发术语开始被广泛使用,尤其是 与控制反转有关.
我维护两个不同的git repos,需要共享一些文件,我希望一个repo中的提交显示在另一个repo中.在每个回购中进行持续维护的好方法是什么?
我一直是perlfaq(Github)的维护者之一,最近我担任维护Perl核心文档的角色,这也是git.
早在我开始维护perlfaq之前,它就住在一个单独的源代码控制库中.我最近将其转换为git.perl5-porters中的一个会定期同步perlfaq repo和perl repo中的共享文件.既然我们已经切换到git,我们就会有点懒惰转换工具,现在我就是这样做的人.目前,两个回购将保持分开.
目前,为了同步perl的新(每月)版本的FAQ,我几乎惭愧地说我只是复制perlfaq repo中的perlfaq*.pod文件并将它们覆盖在perl repo中.这会丢失历史等.另外,有时有人会对perl repo中的那些文件进行更改,最后我会覆盖它(是的,请检查git diff你这个白痴!).这些文件在repo中没有相同的路径,但我认为这是我可以改变的.
我想做的事情,在彩虹和小马的神奇世界中,是从perlfaq仓库中取出物品并将它们应用于perl仓库,反之亦然,因此历史和提交ID各自对应.
管理这个的好方法是什么?
我必须开发两个共享90%相同代码的Django项目,但在几个应用程序,模板和模型本身中有一些变化.
我正在使用Git进行分布式源代码控制.
我的要求是:
这两个项目的通用代码都是在一个地方开发的(Project1的开发环境)
定期将其合并到第二个项目的开发环境中(Project2)
变体不容易封装在应用程序中.(例如,有些应用程序.例如"个人资料",它们在Project1和Project2之间有所不同,但也有一个持续的共同演变)
Project1和Project2都有公共存储库,因此我可以与其他人协作
类似地,Project1和Project2应该具有开发,演示,登台和生产服务器.
但是,在这两种情况下,公共存储库都不在同一台服务器上.因此,例如,当我在Project1中开发时,我希望能够"推送"到我的github服务器,但没有Project2的东西去那里.
有一些文件,例如local_settings.py,它们在Project1和Project2之间完全不同,但应该在每个项目的多个开发人员之间共享
那么管理这种情况的最佳方法是什么?
什么似乎是理想的将是像"过滤拉",而不是.gitignore说"完全忽略这个文件",我可以说"从该回购中拉出时忽略此文件"我看不到任何类似的东西在文档中,但可能有这样的东西?