Saya memiliki proyek super git yang mereferensikan beberapa submodul dan saya mencoba mengunci alur kerja agar anggota proyek saya lainnya dapat bekerja di dalamnya.
Untuk pertanyaan ini, katakanlah superproject saya dipanggil supery
dan submodulnya dipanggil subby
. (Kemudian adalah penyederhanaan dari apa yang saya coba lakukan ... Saya sebenarnya tidak menggunakan cabang untuk versi, tapi saya pikir akan lebih mudah untuk meletakkan sebagai pertanyaan.)
Cabang master saya supery
memiliki tag v1.0
proyek git yang subby
dirujuk sebagai submodul. Cabang supery
yang disebut one.one
dan mengubah referensi submodule ke titik ke tag v1.1
dari subby
.
Saya dapat bekerja di dalam masing-masing cabang ini tanpa hambatan, tetapi jika saya mencoba memperbarui one.one
cabang dengan perubahan dari master
cabang, saya menerima beberapa konflik dan saya tidak tahu bagaimana menyelesaikannya.
Pada dasarnya setelah menjalankan beberapa git pull . master
saat di subby
cabang, sepertinya itu membuat submodul tambahan.
Sebelum tarik / gabung, saya mendapatkan respons yang diinginkan git submodule
dari one.one
cabang:
$ git checkout master
$ git submodule
qw3rty...321e subby (v1.0)
$ git checkout one.one
$ git submodule
asdfgh...456d subby (v1.1)
Tapi setelah ditarik, itu menambahkan submodul tambahan saat saya menjalankan git submodule
:
$ git pull . master
Auto-merged schema
CONFLICT (submodule): Merge conflict in subby - needs qu3rty...321e
Automatic merge failed; fix conflicts and then commit the results.
$ git submodule
qw3rty...321e subby (v1.0)
asdfgh...456d subby (v1.1)
zxcvbn...7890 subby (v1.1~1)
Bagaimana cara menghapus / mengabaikan referensi submodule yang tidak diinginkan dan melakukan konflik dan perubahan saya? Atau apakah ada parameter yang dapat saya gunakan dengan dokumen asli saya git pull
yang akan mengabaikan submodul saya?