Git ialah alat kawalan versi yang sangat popular dan digunakan secara meluas dalam bidang pembangunan perisian. Walau bagaimanapun, kadangkala kita menghadapi beberapa masalah, salah satunya adalah masalah yang git tidak boleh diklon. Jika masalah seperti ini berlaku, kami tidak akan dapat mengambil bahagian dalam projek dan mendapatkan kod untuk pembangunan dan ujian. Artikel ini akan memperkenalkan beberapa punca biasa dan penyelesaian yang sepadan.
Masalah biasa pertama yang menyebabkan Git gagal mengklon ialah masalah rangkaian. Semasa melakukan pengklonan Git, Git mungkin tidak dapat menyambung ke pelayan kerana masalah rangkaian. Dalam kes ini, kita boleh cuba menggunakan alat Ping untuk menguji sambungan rangkaian, atau menukar persekitaran rangkaian. Jika anda masih tidak dapat menyambung, kami boleh cuba menukar tetapan proksi Git.
Dalam Git, kami boleh menggunakan arahan berikut untuk menetapkan proksi untuk protokol HTTP:
$ git config --global http.proxy http://proxy.example.com:8080
Dalam arahan ini, kami menetapkan proksi http kepada "proxy.example.com" , port Nombornya ialah "8080". Jika proksi anda memerlukan pengesahan, anda boleh menyimpan maklumat pengesahan proksi dalam fail konfigurasi anda menggunakan arahan berikut:
$ git config --global http.proxy http://username:password@proxy.example.com:8080
SSH Kuncinya ialah sebahagian daripada sambungan selamat Git Jika kunci SSH tidak dikonfigurasikan dengan betul, Git tidak akan dapat mengklon. Dalam kes ini, kita perlu menyemak sama ada kita mempunyai kunci SSH yang betul dan jika kunci ini telah ditambahkan pada platform pengehosan kod seperti GitHub, GitLab atau Bitbucket.
Dalam Git, kita boleh menjana kunci SSH menggunakan arahan berikut:
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
Kami kemudiannya boleh menambah kunci pada platform pengehosan kod. Seterusnya, kita perlu mengkonfigurasi kunci SSH dalam Git supaya ia boleh dipanggil secara automatik apabila mengakses platform pengehosan kod. Konfigurasi Git boleh disemak menggunakan arahan berikut:
$ git config --list
Dalam senarai kita boleh mencari dua item berikut untuk menyemak sama ada protokol SSH didayakan:
--global user.name=Your Name --global user.email=your.email@example.com
Dalam sesetengah persekitaran rangkaian syarikat atau organisasi, anda mungkin perlu menggunakan pelayan proksi untuk mengakses Internet dan tetapan proksi ini mungkin mempunyai kesan pada operasi pengklonan Git. Dalam kes ini, kita perlu menyemak sama ada tetapan proksi Git adalah betul.
Dalam Git, kita boleh menggunakan arahan berikut untuk menyemak tetapan proksi:
$ git config --global http.proxy
Jika arahan ini tidak mengembalikan sebarang maklumat pelayan proksi, tetapan proksi adalah salah. Kita boleh menyediakan proksi menggunakan arahan berikut:
$ git config --global http.proxy http://proxy.example.com:8080
Masalah biasa terakhir ialah submodul Git tidak dikonfigurasikan dengan betul. Jika kita cuba mengklon repositori yang mengandungi submodul, tetapi submodul tidak dikonfigurasikan dengan betul, Git tidak akan dapat mengklon keseluruhan repositori. Dalam kes ini kita perlu menyemak sama ada pautan Git submodul adalah betul.
Dalam Git, kita boleh menggunakan arahan berikut untuk menyemak konfigurasi submodul:
$ git submodule status
Dalam senarai yang dikembalikan, kita boleh melihat status setiap submodul, termasuk repositori Git laluan dan status. Jika mana-mana submodul berada dalam keadaan tidak normal, Git tidak boleh mengklon keseluruhan repositori. Kita perlu menyemak submodul ini secara individu dan pastikan ia dipautkan dengan betul.
Ringkasan
Di atas adalah beberapa sebab biasa mengapa Git tidak boleh diklon dan penyelesaiannya. Apabila kita menghadapi masalah yang tidak dapat diklonkan oleh Git, kita boleh terlebih dahulu mempertimbangkan dan menyemak dari aspek ini untuk menentukan punca masalah dan mencari penyelesaian yang paling berkesan.
Atas ialah kandungan terperinci Apa yang perlu dilakukan jika git tidak boleh mengklon. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!