是個很不錯的功能,簡單實用。
有需求才會有探索,先說說我是怎麼需要這個功能的。
- 有開源項目A,我
下來了。git clone
- 我想建個項目B,依賴這個項目A,但我并不準備改A的代碼,我隻想改我的B項目。
- 如果我fork一個A項目,那麼作者的A項目更新我就可能落後或錯過什麼; 如果我不fork,那麼我改了B項目代碼我又無權push代碼到網上,因為這不是A項目的一部分。
- 于是我就想到,如果能這樣就好了:A出自一個repository,B出自另一個repository。于是就想到了submodule。
- 果然是。
用法與用量:
以
tortoise Git
截圖為例:
-
A項目,比如得到a檔案夾。git clone
- 在gitee等處建立一個B項目,知道項目位址。
- 進入a檔案夾,選擇
如下圖Submodule Add
- 在新彈出的對話框裡
項目,如下圖。其中注意綠框處的path,決定了相對路徑 。可以自己決定。clone B
- 之後,就可以回到上層,
,直接取到作者的最新内容。pull A
- 然後可以進入内層,
或者pull submodule B
push
,全權管理自己的代碼内容。
上兩個圖示意下。