Ini berfungsi dengan perpustakaan kami yang menjalankan GIT v1.7.1, di mana kami memiliki repo paket DEV dan repo paket LIVE. Repositori itu sendiri hanyalah cangkang untuk mengemas aset untuk suatu proyek. semua submodul.
LIVE tidak pernah diperbarui dengan sengaja, namun file cache atau kecelakaan dapat terjadi, sehingga repo kotor. Subkodul baru yang ditambahkan ke DEV juga harus diinisialisasi dalam LIVE.
Paket Repositori dalam DEV
Di sini kami ingin menarik semua perubahan hulu yang belum kami sadari, kemudian kami akan memperbarui repositori paket kami.
# 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 Repositori dalam LIVE
Di sini kami ingin menarik perubahan yang dikomit ke repositori DEV, tetapi bukan perubahan hulu yang tidak diketahui.
# 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
tidak berhasil, pertama-tama coba tentukan cabang jarak jauh dengangit reset --hard origin/<branch_name>
.