Pertanyaan Submodul Git. Menarik klon baru dari proyek super


BAIK. Jadi saya pikir saya menjilati ini ... tapi sekarang ....

Saya memiliki proyek yang mencakup satu perpustakaan kecil dari GitHub sebagai submodul. Dalam versi asli dari proyek super itu, submodule bekerja seperti yang diharapkan.

Namun, saya hanya mengkloning superproject, melakukan apa yang saya pikir saya harus: "git submodule init", dapatkan direktori submodule untuk muncul, tapi itu kosong.

Jika sekarang saya coba lakukan

git submodule update

saya mendapat

fatal: Needed a single revision 
Unable to find current revision in submodule path 'external_libraries/BEACHhtml'

Jika saya mencoba

git submodule foreach git pull

saya mendapat

Entering 'external_libraries/BEACHhtml'
fatal: Where do you want to fetch from today?
Stopping at 'external_libraries/BEACHhtml'; script returned non-zero status.

Di git / config saya, saya memiliki ini:

[submodule "external_libraries/BEACHhtml"]
    url = git@github.com:interstar/BEACHhtml.git

Dalam gitmodules saya, saya punya ini:

[submodule "external_libraries/BEACHhtml"]
path = external_libraries/BEACHhtml
url = git@github.com:interstar/BEACHhtml.git

Ada yang tahu apa yang hilang?


75
2017-09-30 02:49


asal


Jawaban:


Saya memiliki masalah yang sama dengan Anda. Ini adalah bug di git: http://lists-archives.com/git/785138-git-submodule-update-is-not-fail-safe.html

Singkatnya, untuk masalah Anda, coba:

# rm -rf external_libraries/BEACHhtml
# git submodule update

Sepertinya ada yang salah dengan folder checkout sebelumnya, menghapusnya, dan memperbarui lagi memecahkan masalah.


164
2017-12-20 09:31



Saya memiliki masalah ini (jaringan bersisik jadi saya jatuh checkout submodule seperti ini) dan saya memecahkannya dengan membuat skrip ini (menamainya git-submodule-fix jadi saya bisa menjalankannya sebagai git submodule-fix)

#!/bin/bash 

for arg 
do 
  echo $arg 
  find . -name "`basename $arg`" | grep "$arg\$" | xargs rm -fr
done

Jika Anda mendapatkan ini i.e. dari a git submodule update

fatal: Needed a single revision
Unable to find current revision in submodule path 'some/submodule/path'

melakukan

git submodule-fix some/submodule/path
git submodule update

3
2017-07-04 12:54



Dipecahkan dengan menghapus 2 direktori dan mengambil submodul:

  1. Pergi ke external_libraries/BEACHhtml dan melihat ke dalam .git mengajukan. Kontennya harus seperti itu gitdir: ../../.git/modules/external_libraries/BEACHhtml
  2. Hapus keduanya external_libraries/BEACHhtml dan .git/modules/external_libraries/BEACHhtml direktori.

Dari sekarang git submodule update berjalan tanpa kesalahan.


2
2017-07-26 10:57



gunakan alat diff untuk membandingkan klon asli yang berfungsi dan yang satu ini. Juga, apa yang terjadi git submodule keluaran. Pastikan Anda menunjuk ke cabang yang sama di setiap repo sebelum Anda melakukannya.

Saya mencurigai bahwa Anda telah beralih ke cabang atau revisi yang lebih lama di mana submodul tidak didefinisikan.

semoga ini membantu


0
2017-09-30 04:46



Saya memiliki masalah yang sama dengan submodul pada sebuah proyek. Ketika saya mencoba mengkloning submodule secara terpisah, itu bekerja dengan baik.

Saya sudah mencoba semua jawaban di atas, tetapi tidak berhasil (git submodule update, ..., menghapus folder submodule, ...).

Masalah ini hilang setelah pembaruan git (dari Git-1.7.11-preview20120710) ke versi terbaru (ke Git-1.8.1.2-preview20130201) saat itu. Anehnya kolega saya memiliki versi yang lebih tua, bekerja tanpa masalah, tetapi mereka ada di Mac. Saya menggunakan Win7 64bit.


0
2018-03-04 09:55



Saya ada di Window7. jalankan 'rm -rf src / sizzle', bisa ok!

E: \ GitHub \ fork \ jquery> rm -rf src / sizzle
E: \ GitHub \ fork \ jquery> pembaruan git submodule
'Src / sizzle' jalur submodel 'diperiksa' 19c7b3440385c9f628a7bc1c5769f6946fcc6887 '

E: \ GitHub \ garpu \ jquery> grunt.cmd

...
Disimpan sebagai: master

Selesai, tanpa kesalahan.


-5
2018-01-18 09:12