Điều này hoạt động với các thư viện của chúng tôi chạy GIT v1.7.1, nơi chúng tôi có repo gói DEV và repo gói LIVE. Bản thân các kho lưu trữ không có gì ngoài vỏ để đóng gói tài sản cho một dự án. tất cả các mô hình con.
LIVE không bao giờ được cập nhật có chủ ý, tuy nhiên các tệp bộ đệm hoặc tai nạn có thể xảy ra, khiến repo bị bẩn. Các mô hình con mới được thêm vào DEV cũng phải được khởi tạo trong LIVE.
Kho lưu trữ gói trong DEV
Ở đây chúng tôi muốn kéo tất cả các thay đổi ngược dòng mà chúng tôi chưa biết, sau đó chúng tôi sẽ cập nhật kho lưu trữ gói của chúng tôi.
# 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
Gói lưu trữ trong LIVE
Ở đây chúng tôi muốn lấy các thay đổi được cam kết với kho DEV, nhưng không biết các thay đổi ngược dòng.
# 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
không hoạt động, trước tiên hãy thử chỉ định chi nhánh từ xa vớigit reset --hard origin/<branch_name>
.