Caomus TP
te<h @TDG
Published in
3 min readJun 1, 2022

--

Git Submodules to One Git Repository from Another

ว่าด้วยเรื่อง submodule ที่กำลังเป็นกระแส แต่ก็ค่อนข้างมานานละ แต่ก็ยังเป็นปัญหาที่ว่าหาเราต้องการที่จะสร้างงานหรือนำเข้ามาใช้งานนี่สิ นานๆ เราจะได้ทำซัก 1 ครับ เราก็คงหลงๆลืมๆ กันไปบ้าง มาครับผมทำให้ทุกคนง่ายขึ้น

  • จัดเตรียม Git Repo หลักของเรามาก่อนเลยครับ
Main repository
  • จัดเตรียม Git Repo ที่ต้องการให้เป็น Submodule
Submodule repository

เมื่อเราได้ Git repository มาแล้วก็เป็นอันเรียบร้อย…… อย่า อย่า อย่า ยังไม่เสร็จ

เรามาเริ่มเข้ากระบวนการกันเลยครับ เปิด Fork git กันขึ้นมาเลยครับ download
(ส่วนตัวผมถนัด Fork Git หากใครใช้ตัวอื่นก็ได้ครับไม่ใช่ปัญหา)

1. คลิ้กขวาเลือก Clone จาก git main เราก่อนเลยครับ เพื่อที่เราจะเอา project ของเราลงมาทำงาน

Trip! ~Terminal : $ git clone git@bitbucket.org:caomus_tp/demo-ep1.git
หากใครถนัดใช้ command ก็สามารใช้แบบนี้ได้ครับ

2. Double click repo ที่เรา clone มา แล้วเราจะเห็น folder หลายอัน เราไปเลือกที่ Soubmodule เลยครับ ไม่ต้องพูดพร่ำทำเพลง click right ทันทีเลยครับ 555 แล้วว่าง url submodule ที่เราเตรียมไว้ก่อนหน้านี้ครับ

คลิ้กขวาที่เมนู Submodule
ใส่ url แล้วกำหนด folder ที่เราต้องการ clone submodule

Trip! ~Terminal : $ git submodule add <remote_url> <destination_folder>
หากใครถนัดใช้ command ก็สามารใช้แบบนี้ได้ครับ

จากที่กด Add Submodule แล้วเราก็จะได้หน้าตาออกมาแบบนี้ 😝

เพิ่มอีกหน่อยกันสงสัย Folder ที่ได้จะออกมาประมาณนี้ครับตามที่เรา add submodule มาจากข้างบน

เอาแหล่ะมาขนาดนี้ก็สำเร็จไป 70% แล้วครับทุกคน. 🤩

3. มาถึงหัวใจหลักที่เราใช้ทำงานกันนั้นคือ Xcode ครับผม เราเปิด Main Project เราขึ้นมาครับ
(ในตัวอย่างเราเป็น DemoEP1)

Project DemoEP1
  • จากนั้นเราเลือก Project DemoEP1 และสร้าง folder “Features” ขึ้นมา แล้วเราลงไปมุมล่างซ้ายเลือก (+) Add file to “DemoEP1”
เลือก (+) Add file to “DemoEP1”
  • ถัดมาให้เราเลือก Project submodule ของเราในที่นี้ชื่อว่า “SubmoduleEP1.xcodeproj”
เลือก Submodule project ที่เรา clone มา
  • เมื่อเพิ่มมาแล้วเรียบร้อยเราก็จะได้หน้าตาสวยหรูแบบนี้ครับ ^.^
  • จากนั้นเราก็ Embed framworks ของ Submodule ที่เราต้องการเข้ามาด้วยครับ
add embed frameworks

อ๋ออย่าลืมสร้าง target framework ของ submodule ด้วยนะครับไม่งั้น จะหาไม่เจอครับ

ที่ผ่านมาทั้งหมดนี้ก็เป็นอันเรียบร้อยครับ 🥳

บทความนี้ก็จบหรือจะงงกันนะครับ ฮ่า ฮ่า ฮ่า

ขอบคุณทุกคนที่อ่านมาถึงตรงนี้ครับผม 🙏🏻

--

--

Caomus TP
te<h @TDG

• IOS Developer • Game Programmer • Unity • C++ • Ionic • Github >> https://github.com/caomus • Site >> https://icaomus.wordpress.com/