这适用于我们运行 GIT v1.7.1 的库,其中我们有一个 DEV 包 repo 和 LIVE 包 repo。存储库本身只不过是为项目打包资产的外壳。所有子模块。
LIVE 永远不会有意更新,但是可能会发生缓存文件或事故,从而使存储库变脏。添加到 DEV 的新子模块也必须在 LIVE 中初始化。
DEV 中的包存储库
在这里,我们想要提取我们尚未意识到的所有上游更改,然后我们将更新我们的包存储库。
# Recursively reset to the last HEAD
git submodule foreach --recursive git reset --hard
# Recursively cleanup all files and directories
git submodule foreach --recursive git clean -fd
# Recursively pull the upstream master
git submodule foreach --recursive git pull origin master
# Add / Commit / Push all updates to the package repo
git add .
git commit -m "Updates submodules"
git push
LIVE 中的包存储库
在这里,我们想要提取提交到 DEV 存储库的更改,而不是未知的上游更改。
# Pull changes
git pull
# Pull status (this is required for the submodule update to work)
git status
# Initialize / Update
git submodule update --init --recursive