これは、GIT v1.7.1を実行しているライブラリで機能し、DEVパッケージリポジトリとLIVEパッケージリポジトリがあります。リポジトリ自体は、プロジェクトのアセットをパッケージ化するためのシェルにすぎません。すべてのサブモジュール。
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
git reset --hard
動作しない場合は、まずでリモートブランチを指定してみてくださいgit reset --hard origin/<branch_name>
。