Thực ra, một bản vá has been submitted in April 2009 để làm rõ vai trò gitmodule
.
Vì vậy, bây giờ là gitmodule documentation chưa bao gồm:
File .gitmodules
, nằm trong thư mục cấp cao nhất của một cây làm việc git, là một tập tin văn bản với một cú pháp phù hợp với các yêu cầu notice linkgit: git-config 1.
[MỚI]:
Do tệp này được quản lý bởi Git, nó theo dõi các bản ghi + của mô-đun con của dự án.
Thông tin được lưu trữ trong tệp này được sử dụng làm gợi ý để đánh dấu phiên bản có thẩm quyền của bản ghi được lưu trữ trong tệp cấu hình dự án.
Thay đổi bản ghi cụ thể của người dùng (ví dụ: để tính các khác biệt trong URL phụ do tình huống mạng) phải được thực hiện đối với tệp cấu hình, trong khi thay đổi bản ghi được truyền (ví dụ: + do di chuyển nguồn mô-đun con) vào tập tin này.
Điều đó khá nhiều xác nhận Jim's answer.
Nếu bạn làm theo git submodule tutorial này, bạn sẽ thấy bạn cần một "git submodule init
" để thêm các URL kho submodule để .git/config.
"git submodule sync
" có been added in August 2008 chính xác để làm cho tác vụ đó dễ dàng hơn khi URL thay đổi (đặc biệt nếu số lượng mô-đun con là quan trọng).
Các kịch bản liên kết với lệnh đó là đủ đơn giản:
module_list "[email protected]" |
while read mode sha1 stage path
do
name=$(module_name "$path")
url=$(git config -f .gitmodules --get submodule."$name".url)
if test -e "$path"/.git
then
(
unset GIT_DIR
cd "$path"
remote=$(get_default_remote)
say "Synchronizing submodule url for '$name'"
git config remote."$remote".url "$url"
)
fi
done
Mục tiêu vẫn là: git config remote."$remote".url "$url"
ảnh hưởng nên git sync submodule có gì? Tôi đang làm nó không chính xác trong http://gist.github.com/120723, hoặc tôi không chính xác trong mong đợi .git/config được thay đổi bởi git submodule đồng bộ? –
Điều này dường như không cập nhật .git/config, ít nhất là trong 1.7.1 hoặc 1.7.3. – notJim
Nó cập nhật '.git/config' cho tôi, tôi có git 1.7.5.4. – mxcl