Git submodule
submodule 是在 git repos 中使用別的 repos 的方式之一。
git 的 submodule 是記錄一個指到別人 repo 某個 commit 的指標。對主 repo 來說,記錄的只是一個 submodule commit hash。
切到 submodule 的目錄時做 git 操作會是在操作另一個 repo。
加入 submodule
1 | git submodule add <repo path> |
clone 含有 submodule 的 repos
clone 含有 submodule 的 repos 後,submodule 的目錄會是空的,要做以下動作來初始化:
1 | git submodule init |
git submodule update
會讓 submodule 的內容回到記錄的 commit。
更新 submodule
submodule 的 repo 更新或者想用不同版本(commit)的 submodule 時,要做以下操作:
1 | cd submodule_dir |
概念是把 submodule 的 repo 更新或者 checkout 到想要的 commit,再在主 repo 更新記錄的 submodule commit hash。
移除 submodule
1 | git rm -rf submodule_dir |
.gitmodules
檔案 .gitmodules
會記錄有哪些 submodule。