คำถามติดแท็ก git-submodules

โมดูลย่อยอนุญาตให้คุณเก็บที่เก็บ Git เป็นไดเรกทอรีย่อยของที่เก็บ Git อื่น

12
ฉันจะเปลี่ยนการเปลี่ยนแปลงเป็น submodule git ได้อย่างไร
ฉันมี submodule git (RestKit) ซึ่งฉันได้เพิ่มลงใน repo ของฉัน ฉันบังเอิญเปลี่ยนไฟล์บางไฟล์ในนั้นและฉันต้องการกลับไปเป็นเวอร์ชั่นต้นฉบับ เพื่อที่จะทำเช่นนั้นฉันพยายามที่จะวิ่ง Mac:app-ios user$ git submodule update RestKit แต่อย่างที่คุณเห็นที่นี่สิ่งนี้ไม่ได้ผลเพราะมันยังเป็น "เนื้อหาที่ถูกแก้ไข": Mac:app-ios user$ git status ... # modified: RestKit (modified content) แม้ Mac:app-ios user$ git submodule update -f RestKit จะไม่คืนค่าไฟล์ที่แก้ไขในเครื่อง ฉันจะรีเซ็ตเนื้อหาของ submodule นั้นได้อย่างไร

7
อัปเดต submodule เป็นคอมมิทล่าสุด
ฉันมีโครงการ A ซึ่งเป็นห้องสมุดและใช้ในโครงการ B ทั้งสองโครงการ A และ B มีพื้นที่เก็บข้อมูลแยกต่างหากใน Github แต่ภายใน B เรามี submodule ของ A. ฉันแก้ไขบางคลาสในไลบรารีซึ่งอยู่ใน repo A ฉันผลักไปที่ repo ระยะไกลดังนั้นไลบรารี (repo A) จึงได้รับการอัปเดต การปรับปรุงเหล่านี้ไม่ได้สะท้อนถึง "การอ้างอิง" (submodule) the submodule หมายถึงการกระทำก่อนหน้านี้ .... ฉันควรทำอย่างไรเพื่อที่จะอัพเดท submodule บน git?

17
แสดงรายการ submodules ในที่เก็บ Git
ฉันมีที่เก็บ Git ที่มี submodules หลายอัน ฉันจะแสดงรายการชื่อของ submodules ทั้งหมดหลังจากที่git submodule initเรียกใช้แล้วได้อย่างไร git submodule foreachคำสั่งอาจสะท้อนชื่อของ submodule แต่ที่ทำงานเฉพาะเมื่อพวกเขาได้รับการตรวจสอบออกมาซึ่งไม่ได้เกิดขึ้นหลังจากขั้นตอนการเริ่มระบบ มีขั้นตอนเพิ่มเติมในห่วงโซ่ที่ต้องเกิดขึ้นก่อนที่พวกเขาจะสามารถตรวจสอบได้และฉันไม่ต้องการที่จะต้องชื่อหนักของ submodules ลงในสคริปต์ ดังนั้นมีคำสั่ง Git เพื่อรับชื่อของการลงทะเบียนทั้งหมดในปัจจุบัน แต่ยังไม่ได้ตรวจสอบ submodules?

4
อัพเดต God submodule
ฉันไม่ชัดเจนเกี่ยวกับความหมายต่อไปนี้ (จากเอกสารอัปเดต submodule Git ): ... จะทำให้ส่วนหัวของ submodules ยกเว้น--rebaseหรือ--mergeระบุไว้ ... อย่างไร--rebase/ --mergeสิ่งที่เปลี่ยนแปลง? กรณีการใช้งานหลักของฉันคือการมีที่เก็บส่วนกลางจำนวนมากซึ่งฉันจะฝังผ่าน submodules ไปยังที่เก็บอื่น ๆ ฉันต้องการที่จะสามารถปรับปรุงที่เก็บข้อมูลส่วนกลางเหล่านี้ไม่ว่าจะอยู่ในตำแหน่งเดิมโดยตรงหรือจากภายในคลังเก็บของที่ฝังอยู่ (ที่เก็บที่ใช้ผ่านทาง submodule) จากภายใน submodules เหล่านี้ฉันสามารถสร้าง branch / modified และใช้ push / pull เหมือนกับที่ใช้ใน repositories ปกติหรือมีสิ่งที่ต้องระวังหรือไม่? ฉันจะก้าวหน้าไปถึงการส่งซับออเดอร์ที่อ้างอิงจากการพูด (ติดแท็ก) 1.0 ถึง 1.1 (แม้ว่าส่วนหัวของที่เก็บต้นฉบับนั้นมีอยู่ที่ 2.0) หรือเลือกการกระทำของสาขาที่ใช้เลย

9
Git diff บอกว่าโครงการย่อยสกปรก
ฉันเพิ่งจะเรียกใช้คอมไพล์และฉันได้รับผลลัพธ์ต่อไปนี้สำหรับทั้งหมด 10 submodules ของฉัน diff --git a/.vim/bundle/bufexplorer b/.vim/bundle/bufexplorer --- a/.vim/bundle/bufexplorer +++ b/.vim/bundle/bufexplorer @@ -1 +1 @@ -Subproject commit 8c75e65b647238febd0257658b150f717a136359 +Subproject commit 8c75e65b647238febd0257658b150f717a136359-dirty สิ่งนี้หมายความว่า? ฉันจะแก้ไขได้อย่างไร

11
ปัญหาเกี่ยวกับการเพิ่มรหัสทั่วไปเป็น git submodule:“ มีอยู่แล้วในดัชนี”
ฉันใหม่เพื่อคอมไพล์และจะขอบคุณความช่วยเหลือในการเพิ่ม submodules ฉันได้รับสองโครงการที่ใช้รหัสทั่วไปร่วมกัน รหัสที่ใช้ร่วมกันถูกคัดลอกลงในสองโครงการ ฉันสร้าง repo คอมไพล์แยกสำหรับรหัสทั่วไปและลบมันออกจากโครงการโดยมีแผนที่จะเพิ่มมันเป็น submodule git ฉันใช้ตัวเลือกเส้นทางของ submodule git เพิ่มเพื่อระบุโฟลเดอร์: git submodule add url_to_repo projectfolder แต่มีข้อผิดพลาด: 'projectfolder' already exists in the index" นี่คือโครงสร้างที่ต้องการของที่เก็บของฉัน: repo |-- projectfolder |-- folder with common code เป็นไปได้ที่จะเพิ่ม god submodule โดยตรงใน repo หรือในโฟลเดอร์ใหม่ที่นั่น แต่ไม่ได้อยู่ใน projectfolder ปัญหาคือมันต้องอยู่ใน projectfolder จริงๆ .. ฉันจะทำอย่างไรกับเรื่องนี้และฉันเข้าใจผิดอะไรเกี่ยวกับตัวเลือก path ของ god …

4
วิธีการตั้งค่าโครงการคอมไพล์เพื่อใช้งาน repo submodule ภายนอก?
ฉันต้องการสร้าง repo ที่ดึงใน repo ระยะไกล ตัวอย่างเช่นสมมติว่า jQuery เป็น submodule: git://github.com/jquery/jquery.git สิ่งที่จะเป็นกระบวนการในการสร้าง repo ด้วย jQuery เป็น submodule และเพิ่ม external ของฉันเองเป็น repo ระยะไกล นอกจากนี้เมื่อมีการตั้งค่าถ้าฉันกด / ดึงที่รีโมทของฉันภายนอกจะยังคงอยู่หรือไม่

5
Git submodule add: ปัญหา“ พบไดเร็กทอรี git ในเครื่อง”
ฉันพยายามเรียนรู้วิธีใช้ git รวมถึงคำgit submoduleสั่งย่อยด้วย ฉันตั้งค่าเซิร์ฟเวอร์ที่ฉันสามารถโฮสต์พุชและดึงที่เก็บ git โดยใช้ SSH ได้แล้ว ฉันสร้างที่เก็บ git หลัก "Travail" บนเซิร์ฟเวอร์นี้ซึ่งฉันต้องการใส่โครงการทั้งหมดของฉันเป็นโมดูลย่อย ในที่เก็บ Travail ของฉันฉันได้เพิ่มโปรเจ็กต์ของฉันเป็นโมดูลย่อยแล้วที่tools/libft: ฉันสามารถพัฒนาโมดูลย่อยนี้เพื่อผลักดันและดึงมันได้ แต่เมื่อฉันพยายามเพิ่มโมดูลย่อยอื่น (ชื่อ fdf จาก fdf.git บนเซิร์ฟเวอร์ของฉัน) ฉันได้รับปัญหาต่อไปนี้: git submodule add ssh://XXX.XXX.XXX.XXX:XXXXX/opt/git/fdf.git projets/fdf พบไดเร็กทอรี git สำหรับ 'projets / fdf' ในเครื่องพร้อมกับ remote (s): origin ssh: //git@XXX.XXX.XXX.XXX: XXXXX / opt / git / fdf.git หากคุณต้องการใช้ …

8
มีวิธีทำให้ git pull อัปเดต submodules โดยอัตโนมัติหรือไม่?
มีวิธีที่จะมีโดยอัตโนมัติgit submodule update(หรือgit submodule update --initเรียกว่ายิ่งเมื่อใดก็ตามที่git pullจะทำ? กำลังมองหาการตั้งค่าการตั้งค่า git หรือนามแฝง git เพื่อช่วยในเรื่องนี้

7
ทำไม God Submodule HEAD ของฉันถูกถอดออกจากอาจารย์?
ฉันใช้ Git submodules หลังจากดึงการเปลี่ยนแปลงจากเซิร์ฟเวอร์หลาย ๆ ครั้งหัว submodule ของฉันจะถูกถอดออกจากสาขาหลัก ทำไมมันเกิดขึ้น ฉันต้องทำเสมอ: git branch git checkout master ฉันจะแน่ใจได้อย่างไรว่า submodule ของฉันชี้ไปที่สาขาหลักเสมอ

13
จะติดตามเนื้อหาที่ไม่ได้ติดตามได้อย่างไร
ดูด้านล่างเส้นทึบสำหรับคำถามเดิมของฉัน ฉันมีโฟลเดอร์ในไดเรกทอรีท้องถิ่นที่ไม่ได้ติดตาม เมื่อฉันวิ่งgit statusฉันจะได้รับ: Changed but not updated: modified: vendor/plugins/open_flash_chart_2 (modified content, untracked content) เมื่อฉันพิมพ์git add vendor/plugins/open_flash_chart_2จากนั้นลองgit statusอีกครั้งมันยังคงบอกว่าไม่ได้ติดตาม เกิดอะไรขึ้น? นี่เป็นบทสรุปง่ายๆของครึ่งชั่วโมงล่าสุดของฉัน: พบว่า repo Github ของฉันไม่ได้ติดตามvendor/plugins/open_flash_chart_2ปลั๊กอินของฉัน โดยเฉพาะไม่มีเนื้อหาและมันแสดงลูกศรสีเขียวบนไอคอนโฟลเดอร์ พยายาม git submodule init No submodule mapping found in .gitmodules for path 'vendor/plugins/open_flash_chart_2' พยายาม git submodule add git://github.com/korin/open_flash_chart_2_plugin.git vendor/plugins/open_flash_chart_2 vendor/plugins/open_flash_chart_2 already exists in the index …

7
เปลี่ยนชื่อ submodule คอมไพล์
มีวิธีง่ายๆในการเปลี่ยนชื่อไดเรกทอรี submodule git (นอกเหนือจากการเคลื่อนไหวทั้งหมดของการ ลบมันและเพิ่มอีกครั้งด้วยชื่อปลายทางใหม่) และในขณะที่เราอยู่ที่นี่ทำไมเป็นเพราะฉันไม่สามารถทำสิ่งต่อไปนี้ในไดเรกทอรีหลัก: git mv old-submodule-name new-submodule-name

1
ฉันจะเชื่อมโยงการพึ่งพาใน repo คอมไพล์ได้อย่างไร
ในสคริปต์ของฉันฉันมักจะใช้ห้องสมุด (ของฉันหรือของคนอื่น) ที่มี repos ของตัวเอง ฉันไม่ต้องการทำซ้ำสิ่งที่อยู่ใน repo ของฉันและติดอยู่กับการอัพเดททุกครั้งที่มีเวอร์ชันใหม่ออกมา อย่างไรก็ตามเมื่อมีคนโคลน repo มันควรจะทำงานในพื้นที่และไม่มีการเชื่อมโยงที่ขาด ความคิดใด ๆ เกี่ยวกับสิ่งที่ฉันสามารถทำได้?

10
จะกำจัดสถานะ Git submodules ที่ไม่ได้ติดตามได้อย่างไร
ดูเหมือนว่าฉันจะไม่สามารถกำจัดเนื้อหาที่ไม่ได้ติดตามได้ใน submodules ของ Git วิ่งgit statusผลผลิต: # เกี่ยวกับอาจารย์สาขา # การเปลี่ยนแปลงที่ไม่ได้จัดเตรียมไว้สำหรับการส่งมอบ: # (ใช้ "git add ... " เพื่ออัปเดตสิ่งที่จะเกิดขึ้น) # (ใช้ "ชำระเงิน git - ... " เพื่อยกเลิกการเปลี่ยนแปลงในไดเรกทอรีการทำงาน) # (กระทำหรือทิ้งเนื้อหาที่ไม่ได้ติดตามหรือแก้ไขใน submodules) # # modified: มัด / snipmate (เนื้อหาที่ไม่ได้ติดตาม) # modified: มัด / รอบทิศทาง (เนื้อหาที่ไม่ได้ติดตาม) # modified: มัด / ต่อท้าย - ช่องว่าง (เนื้อหาที่ไม่ได้ติดตาม) # …

5
Git: ร้ายแรง: Pathspec อยู่ใน submodule
ฉันกำลังพยายามให้ TravisCI ปรับใช้ไซต์คงที่ Hakyll ของฉันโดยอัตโนมัติตามคู่มือนี้ นี่คือวิธีการตั้งค่า repo ของฉัน ฉันมีสาขาต้นทางของฉันซึ่งมีไฟล์ hakyll และ markdown ของฉัน มันสร้าง html ใน_siteไดเรกทอรีซึ่งตั้งค่าเป็น submodule เชื่อมโยงกับmasterสาขาของฉัน ฉันสร้างเว็บไซต์โดยไม่มีปัญหาจากนั้นcdเข้าสู่ไดเรกทอรี _site อย่างไรก็ตามเมื่อฉันลองgit add ./*ไฟล์ HTML ที่สร้างขึ้นใหม่ฉันได้รับข้อผิดพลาดต่อไปนี้: fatal: Pathspec './about.html' is in submodule '_site' เมื่อฉันลองgit add --allฉันได้รับข้อผิดพลาดนี้: git: pathspec.c:317: prefix_pathspec: Assertion `item->nowildcard_len <= item->len && item->prefix <= item->len' failed. /home/travis/build.sh: line 245: …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.