Tôi có một dự án được sử dụng để chứa một mô-đun con, tại đường dẫn mysubmodule
. Tôi đã cài đặt Git mới nhất từ nguồn (1.8.3-rc2) và chạy git submodule deinit mysubmodule
. Sau đó, tôi đã xóa tệp .gitmodules
và cam kết thay đổi. Tôi cũng đã xóa thư mục .git
khỏi thư mục mysubmodule
.Làm cách nào để thêm tệp trong Git vào đường dẫn của một mô-đun con cũ?
Tôi muốn cam kết các tệp từ mysubmodule
vào repo của tôi ngay bây giờ, nhưng git cho biết không có thay đổi. Nếu tôi nhập git add mysubmodule
thì không có gì. Nếu tôi gõ git add mysubmodule/file.txt
nó nói fatal: Path 'mysubmodule/file.txt' is in submodule 'mysubmodule'
Tôi cũng phát hiện ra nếu bạn kiểm tra phiên bản mới của repo, nó tạo ra một thư mục mysubmodule
, mặc dù không có .gitmodules
tệp. Và chạy git submodule init
sẽ báo lỗi cho bạn No submodule mapping found in .gitmodules for path 'mysubmodule'
.
Làm cách nào để khắc phục sự cố này?
Bạn đã kiểm tra tất cả [các bước sau] (http://stackoverflow.com/a/1260982/955926) để đảm bảo không có phần nào của mô-đun con nằm xung quanh? Tôi không nghĩ rằng 'deinit' hoàn toàn loại bỏ submodule. Có vẻ như bạn chỉ cần xóa nó khỏi tệp '.git/config' của mình, như thể bạn đã sao chép một repo bằng một mô-đun con, nhưng vẫn chưa chạy' git init'. Điều đó khác với việc loại bỏ hoàn toàn mô-đun con. Nếu đây là trường hợp, git vẫn nghĩ rằng thư mục là một mô-đun con, nhưng bỏ qua nó. –