Saya ingin membuat repo yang menarik repo jarak jauh.
Misalnya, katakanlah jQuery sebagai submodule:
git://github.com/jquery/jquery.git
Apa yang akan menjadi proses membuat repo dengan jQuery sebagai submodule dan menambahkan eksternal saya sendiri sebagai repo jarak jauh.
Juga setelah pengaturan ini, jika saya mendorong / menarik ke remote saya sendiri, akankah eksternal tetap utuh?
Jawaban:
Submodules sangat, sangat mudah untuk dirujuk dan digunakan. Dengan asumsi Anda sudah memiliki MyWebApp diatur sebagai repo, dari terminal mengeluarkan perintah ini:
Ini akan membuat direktori bernama
externals/jquery
* dan menautkannya ke gudang jquery github. Sekarang kita hanya perlu memasukkan submodule dan mengkloning kodenya:Anda sekarang harus memiliki semua kode terbaru yang diklon ke submodule. Jika perubahan repo jquery dan Anda ingin menarik kode terbaru ke bawah, hanya mengeluarkan
submodule update
perintah lagi. Harap dicatat: Saya biasanya memiliki sejumlah repositori eksternal dalam proyek saya, jadi saya selalu mengelompokkan repositori tersebut di bawah direktori "eksternal".Pro Git Book online memiliki beberapa informasi bagus tentang submodula (dan git pada umumnya) yang disajikan dengan cara yang mudah dibaca. Bergantian,
git help submodule
juga akan memberikan informasi yang baik. Atau lihat Tutorial Submodule Git di git wiki.Saya perhatikan entri blog ini yang berbicara tentang submodula dan membandingkannya dengan svn: mekanisme eksternal Subversion: http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
* Sebagai praktik terbaik, Anda harus selalu menempatkan submodul Anda di direktori mereka sendiri, seperti Eksternal. Jika tidak, direktori proyek root Anda bisa menjadi sangat berantakan dengan sangat cepat.
sumber
git submodule add
dangit submodule update
... Saya tidak yakin seberapa mudah bisa didapat.Sebagian besar yang perlu Anda ketahui sudah dijawab, jadi saya tidak akan repot mengatasinya, namun, saya telah menemukan sedikit informasi yang biasanya hilang.
Seperti yang Anda ketahui, "git pull" tidak akan memperbarui submodules, dan "git submodules update" juga tidak akan mengunduh HEAD terbaru dari submodules tersebut.
Untuk memperbarui semua submodul Anda ke revisi hulu terbaru, Anda dapat menggunakan
Jika Anda sering mengubah submodules Anda, dan memiliki banyak, maka "git foreach" akan menjadi sangat berharga.
sumber
Pada akhirnya saya menemukan http://github.com/evilchelu/braid tampaknya cocok dengan bagaimana saya berharap submodules dan remote berfungsi
sumber
Saya kira jawaban @Hugo bisa seperti yang Anda butuhkan dan berfungsi dengan baik. Jadi saya telah menemukan cara yang lebih mudah.
Itu saja.
Jadi alur kerja yang lengkap bisa menjadi:
sumber