Cập nhật tháng 3 năm 2013
Git 1.8.2 đã thêm khả năng theo dõi các nhánh.
" git submodule
" bắt đầu học một chế độ mới để tích hợp với đầu nhánh từ xa (trái ngược với tích hợp với cam kết được ghi trong gitlink của siêu dự án).
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
Nếu bạn đã có một mô hình con đã có sẵn, bây giờ bạn muốn theo dõi một nhánh, xem " cách tạo một mô hình con hiện có theo dõi một nhánh ".
Cũng xem hướng dẫn của Vogella về các mô hình con để biết thông tin chung về các mô hình con.
Ghi chú:
git submodule add -b . [URL to Git repo];
^^^
Xem git submodule
trang người đàn ông :
Một giá trị đặc biệt .
được sử dụng để chỉ ra rằng tên của nhánh trong mô hình con phải cùng tên với nhánh hiện tại trong kho lưu trữ hiện tại .
Xem cam kết b928922727d6691a3bdc28160f93f25712c565f6 :
submodule add
: Nếu --branch
được đưa ra, ghi lại vào.gitmodules
Điều này cho phép bạn dễ dàng ghi lại một submodule.<name>.branch
tùy chọn .gitmodules
khi bạn thêm một mô hình con mới. Với bản vá này,
$ git submodule add -b <branch> <repository> [<path>]
$ git config -f .gitmodules submodule.<path>.branch <branch>
giảm xuống
$ git submodule add -b <branch> <repository> [<path>]
Điều này có nghĩa là các cuộc gọi trong tương lai tới
$ git submodule update --remote ...
sẽ nhận được các bản cập nhật từ cùng một nhánh mà bạn đã sử dụng để khởi tạo mô hình con, thường là những gì bạn muốn.
Đã ký tắt: W. Trevor King
Câu trả lời gốc (tháng 2 năm 2012):
Một mô hình con là một cam kết duy nhất được tham chiếu bởi một repo cha.
Vì nó là một repo Git của riêng nó, "lịch sử của tất cả các cam kết" có thể truy cập được thông qua một git log
mô hình con đó.
Vì vậy, để cha mẹ tự động theo dõi cam kết mới nhất của một nhánh con nhất định, nó sẽ cần phải:
- cd trong mô hình con
- git fetch / pull để đảm bảo nó có các xác nhận mới nhất trên nhánh bên phải
- cd trở lại trong repo cha
- thêm và cam kết để ghi lại cam kết mới của mô hình con.
gitslave (mà bạn đã xem) dường như là phù hợp nhất, bao gồm cả cho hoạt động cam kết .
Có một chút khó chịu khi thực hiện các thay đổi cho mô hình con do yêu cầu kiểm tra trên nhánh con chính xác, thực hiện thay đổi, cam kết và sau đó đi vào siêu dự án và cam kết (hoặc ít nhất là ghi lại vị trí mới của mô hình con).
Các lựa chọn thay thế khác được chi tiết ở đây .