Không, bạn không cần thêm mô-đun con của mình vào .gitignore
: cái mà cha mẹ sẽ thấy từ mô-đun con của bạn là một gitlink (một mục nhập đặc biệt,mode 160000
).
Điều đó có nghĩa là: bất kỳ thay đổi nào được thực hiện trực tiếp trong một mô-đun con cần phải được theo sau bởi một cam kết trong thư mục mẹ.
Bằng cách đó, thư mục mẹ sẽ ghi lại cam kết phù hợp cho trạng thái của mô-đun con: Cam kết đó là "gitlink" đã đề cập ở trên;
Bạn có thể đọc thêm về chính sách đó trong " git submodule update (bản chất thực sự của submodules) ".
Ý tưởng chính đằng sau các mô-đun con là cách tiếp cận dựa trên thành phần , nơi bạn tham khảo các repo khác ở các cam kết cụ thể. Nhưng nếu bạn thay đổi bất kỳ điều gì trong các mô-đun con đó, bạn cũng cần cập nhật các tham chiếu đó trong repo mẹ.
Lưu ý rằng với Git 2.13 (Quý 2 năm 2017), trong khi không bỏ qua gitlink, bạn vẫn có thể bỏ qua mô-đun con với:
git config submodule.<name>.active false
Xem thêm tại " Bỏ qua cam kết mới cho git submodule ".
Lưu ý: với Git 2.15.x / 2.16 (Q1 2018), việc bỏ qua mô-đun con chính xác hơn.
" git status --ignored --untracked
" không dừng lại ở một cây làm việc của một dự án riêng biệt mà được nhúng trong một thư mục bị bỏ qua và các tệp được liệt kê trong dự án khác đó, thay vì chỉ hiển thị bản thân thư mục bị bỏ qua.
Xem cam kết fadb482 (25 tháng 10 năm 2017) của Johannes Schindelin ( dscho
) .
(Hợp nhất bởi Junio C Hamano - gitster
- in commit da7996a , 06/11/2017)
status
: không bị nhầm lẫn bởi các mô-đun con trong các thư mục bị loại trừ
Chúng tôi chuyển exclude
cờ một cách tỉ mỉ cho treat_directory()
hàm để chúng tôi có thể chỉ ra rằng các tệp trong đó bị loại trừ thay vì không được theo dõi khi đệ quy.
Nhưng chúng tôi vẫn chưa xử lý các mô-đun con theo cùng một cách.
Do đó, git status --ignored --untracked
với một mô-đun con
submodule
trong gitignored tracked/
sẽ hiển thị mô-đun con trong phần " Untracked files
", ví dụ:
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
tracked/submodule/
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/initial.t
Thay vào đó, chúng tôi muốn nó hiển thị mô-đun con trong phần " Ignored files
":
On branch master
Ignored files:
(use "git add -f <file>..." to include in what will be committed)
tracked/submodule/