ด้วย Git 2.25 (Q1 2020) คุณสามารถแก้ไขได้
ดูที่ " เปลี่ยน Git submodule url " และคำสั่งใหม่
git submodule set-url [--] <path> <newurl>
คำตอบเดิม (พฤษภาคม 2009 สิบปีที่ผ่านมา)
ที่จริงแล้วมีการส่ง patch ในเดือนเมษายน 2552เพื่อชี้แจงgitmodule
บทบาท
ดังนั้นตอนนี้เอกสาร gitmoduleยังไม่รวม:
.gitmodules
ไฟล์อยู่ในไดเรกทอรีระดับบนสุดของต้นไม้คอมไพล์ทำงานเป็นแฟ้มข้อความที่มีรูปแบบที่ตรงกับความต้องการ -of linkgit: Git-config 1
[ใหม่]:
เนื่องจากไฟล์นี้จัดการโดย Git มันจะติดตาม + บันทึกของ submodules ของโครงการ
ข้อมูลที่เก็บไว้ในไฟล์นี้ใช้เป็นคำใบ้สำคัญสำหรับเวอร์ชันที่เชื่อถือได้ของบันทึกที่จัดเก็บในไฟล์กำหนดค่าโครงการ
การเปลี่ยนแปลงเรกคอร์ดเฉพาะผู้ใช้ (เช่นบัญชีสำหรับความแตกต่างใน submodule URL เนื่องจากสถานการณ์เครือข่าย) ควรทำกับไฟล์การกำหนดค่าในขณะที่การเปลี่ยนแปลงเรคคอร์ดที่จะเผยแพร่ (เช่น + เนื่องจากการย้ายตำแหน่งของแหล่ง submodule) ควรทำกับไฟล์นี้ .
ยืนยันว่าสวยมากคำตอบของจิม
หากคุณทำตามบทช่วยสอนซับไตเติ้ล Gitนี้คุณจะเห็นว่าคุณต้องมี " git submodule init
" เพื่อเพิ่ม URL ที่เก็บ submodule ไปยัง. git / config
" git submodule sync
" ถูกเพิ่มในเดือนสิงหาคม 2008อย่างแม่นยำเพื่อให้งานง่ายขึ้นเมื่อมีการเปลี่ยนแปลง URL (โดยเฉพาะอย่างยิ่งถ้าจำนวนของ submodules มีความสำคัญ)
สคริปต์เชื่อมโยงกับคำสั่งนั้นตรงไปตรงมามากพอ:
module_list "$@" |
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
เป้าหมายยังคงอยู่: git config remote."$remote".url "$url"
git submodule set-url [--] <path> <newurl>