Dies funktioniert mit unseren Bibliotheken unter GIT v1.7.1, wo wir ein DEV-Paket-Repositorium und ein LIVE-Paket-Repositorium haben. Die Repositories selbst sind nichts anderes als eine Shell, um die Assets für ein Projekt zu verpacken. alle Submodule.
LIVE wird nie absichtlich aktualisiert, es kann jedoch zu Cache-Dateien oder Unfällen kommen, die das Repository verschmutzen. Neue Untermodule, die zu DEV hinzugefügt werden, müssen auch in LIVE initialisiert werden.
Paket-Repository in DEV
Hier wollen wir alle Upstream-Änderungen ziehen, die uns noch nicht bekannt sind, dann werden wir unser Paket-Repository aktualisieren.
# 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
Paket-Repository in LIVE
Hier wollen wir die Änderungen ziehen, die in das DEV-Repository übertragen wurden, aber keine unbekannten Upstream-Änderungen.
# Pull changes
git pull
# Pull status (this is required for the submodule update to work)
git status
# Initialize / Update
git submodule update --init --recursive