Lý lịch
Sử dụng Git 1.8.1.1 trên Linux. Kho lưu trữ trông như sau:
master
book
Mô-đun con được tạo như sau:
$ cd /path/to/master
$ git submodule add https://user@bitbucket.org/user/repo.git book
Mô book
-đun con là sạch:
$ cd /path/to/master/book/
$ git status
# On branch master
nothing to commit, working directory clean
Vấn đề
Mặt khác, tổng thể cho thấy có "cam kết mới" cho mô-đun con của cuốn sách:
$ cd /path/to/master/
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# modified: book (new commits)
#
no changes added to commit (use "git add" and/or "git commit -a")
Git nên bỏ qua hoàn toàn thư mục mô-đun con, để cái chính cũng sạch:
$ cd /path/to/master/
$ git status
# On branch master
nothing to commit, working directory clean
Không cố gắng # 1 - bẩn
Bên trong tệp master/.gitmodules
là như sau, theo câu trả lời này :
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = dirty
Không cố gắng # 2 - không được theo dõi
Đã thay đổi master/.gitmodules
thành như sau, theo câu trả lời này :
[submodule "book"]
path = book
url = https://user@bitbucket.org/user/repo.git
ignore = untracked
Không thử được # 3 - showUntrackedFiles
Đã chỉnh sửa master/.git/config
phần sau, theo câu trả lời này :
[status]
showUntrackedFiles = no
Nỗ lực thất bại # 4 - bỏ qua
Đã thêm thư mục sách vào tệp bỏ qua chính:
$ cd /path/to/master/
$ echo book > .gitignore
Không thành công # 5 - sao chép
Đã thêm thư mục sách vào trang cái như sau:
$ cd /path/to/master/
$ rm -rf book
$ git clone https://user@bitbucket.org/user/repo.git book
Câu hỏi
Làm thế nào để book
mô-đun con có thể nằm trong thư mục kho lưu trữ của chính nó trong master
kho lưu trữ mà git bỏ qua book
mô-đun con? Đó là, những điều sau sẽ không hiển thị:
#
# modified: book (new commits)
#
Làm thế nào để ngăn chặn thông báo đó khi thực thi git status
trong kho lưu trữ chính?
Một bài báo về cạm bẫy git submodule cho thấy đây là một cách sử dụng submodule không phù hợp?