我有一个工具集合,我通过git在远程回购与工作树上拉动我的计算机之间进行同步。Git子模块peer2peer工作流程
每当某些工具有git源时,我会通过'git submodule add'添加它们。
有时候我会做一些小的修改,编译工具,并添加想要在git repo中提交 - 我的目标是快速使用它们并重新编译。 什么是适当的工作流程?如果我从一开始:
modulepath/submodulepath/bin$ git add submodulefile
modulepath/submodulepath/bin$ git commit -m "subfix"
modulepath/submodulepath/bin$ git pull origin master
modulepath/submodulepath/bin$ cd ../../
modulepath/$ git add submodulepath;git commit -m "subfix in sub"
然后将提交的子版本传播后,我拉主repo?我在这里读到git submodule update,我需要提交第一个子模块。但事实上,我的提交不会被推到子模块的起源,但我想同步共享主模块的主机之间的更改,如何继续?主模块是否可以覆盖子模块中的更改?或者我可以启动一个没有上游url的子模块分支 - 它只会被父主模块提取/合并。
那么为什么git被称为分散如果为了共享内容p2p我需要在每个主机上设置外部URL,其中一些是NAT后面的连接可能只有一种方式? – nusch
@nusch因为git *是*分散的。它从*分散*服务器获取其内容。对于子模块,父回购仅记录其子模块的URL和SHA1。如果该子模块在本地更改,则需要将该更改推送到父回购所依赖的网址,以便取回新的SHA1。 – VonC