Jadual Kandungan
Prinsip Git
Rumah alat pembangunan git Menggunakan teknik ini, klon git boleh dipercepatkan berpuluh-puluh kali!

Menggunakan teknik ini, klon git boleh dipercepatkan berpuluh-puluh kali!

Dec 20, 2021 pm 03:11 PM

Saya tidak tahu sama ada anda pernah menemui projek yang lebih besar di mana klon git sangat perlahan atau gagal. Bagaimana semua orang akan menghadapinya?

Anda boleh mempertimbangkan untuk menukar sumber muat turun, dan anda boleh cuba meningkatkan kelajuan Internet melalui beberapa cara, tetapi bagaimana jika anda telah mencuba semua ini dan ia masih perlahan?

Saya menghadapi masalah ini hari ini, saya perlu memuat turun kod skrip taip dari gitlab, tetapi kelajuannya sangat perlahan:

git clone https://github.com/microsoft/TypeScript ts
Salin selepas log masuk

Setelah menunggu lama, muat turun masih tidak. selesai, jadi saya menambah Satu parameter:

git clone https://github.com/microsoft/TypeScript --depth=1 ts
Salin selepas log masuk

Ini meningkatkan kelajuan berpuluh-puluh kali ganda dan muat turun selesai serta-merta.

Menambah --depth hanya akan memuat turun satu komit, jadi kandungannya lebih kurang dan kelajuannya dipertingkatkan. [Cadangan berkaitan: Tutorial penggunaan Git]

Dan kandungan yang dimuat turun boleh terus menyerahkan komitmen baharu dan mencipta cawangan baharu. Ia tidak menjejaskan perkembangan seterusnya, tetapi anda tidak boleh bertukar kepada komitmen sejarah dan cabang sejarah.

Saya mengujinya dengan salah satu projek saya mula-mula memuat turun komit:

Menggunakan teknik ini, klon git boleh dipercepatkan berpuluh-puluh kali!

dan kemudian membuat beberapa perubahan, kemudian git add, commit, push, Boleh diserahkan seperti biasa:

Menggunakan teknik ini, klon git boleh dipercepatkan berpuluh-puluh kali!

Menggunakan teknik ini, klon git boleh dipercepatkan berpuluh-puluh kali!

Mencipta cawangan baharu juga boleh diserahkan seperti biasa. Satu-satunya kelemahan ialah anda tidak boleh beralih kepada komitmen sejarah dan cabang sejarah.

Ia agak berguna dalam beberapa senario: apabila anda perlu beralih kepada cabang sejarah, anda juga boleh mengira bilangan komitmen yang diperlukan, dan kemudian menentukan kedalaman, yang juga boleh meningkatkan kelajuan.

Pernahkah anda terfikir tentang sebab mengapa ini berkesan?

Prinsip Git

Git menyimpan maklumat melalui beberapa objek:

  • kandungan fail storan objek glob
  • laluan fail storan objek pokok
  • menyimpan objek komit menyimpan maklumat, dan pepohon yang berkaitan
mengambil komit sebagai entri, dan semua pepohon serta gumpalan yang berkaitan ialah kandungan komit ini.

Menggunakan teknik ini, klon git boleh dipercepatkan berpuluh-puluh kali!

Komit adalah berkaitan antara satu sama lain, dan kepala, cawangan, tag, dll. adalah penunjuk kepada komitmen tertentu. Boleh dilihat di bawah .git/refs. Dengan cara ini, konsep seperti cawangan dan teg dilaksanakan berdasarkan komit.

Git melaksanakan pengurusan versi dan fungsi penukaran cawangan melalui ketiga-tiga objek ini. Semua objek boleh dilihat di bawah .git/objects.

Beginilah cara git berfungsi.

Terutamanya memahami tiga objek gumpalan, pokok dan komit, serta rujukan seperti kepala, tag, cawangan dan jauh.

Prinsip untuk dapat memuat turun satu komit

Kami tahu bahawa git mengaitkan semua objek melalui komit tertentu sebagai titik masuk, jadi jika kita tidak memerlukan sejarah, kita boleh secara semula jadi muat turun hanya satu komit.

Menggunakan teknik ini, klon git boleh dipercepatkan berpuluh-puluh kali!

Dengan cara ini, komit baharu masih dibuat berdasarkan komit itu, dan gumpalan, pokok, dll. baharu dikaitkan. Walau bagaimanapun, komitmen sejarah, pokok dan gumpalan tidak boleh ditukar kembali kerana ia belum dimuat turun, begitu juga teg, cawangan dan penunjuk lain yang sepadan. Beginilah cara kami memuat turun satu komit tetapi masih boleh membuat cawangan baharu, komit, dsb.

Ringkasan

Apabila menghadapi projek git yang besar, anda boleh meningkatkan kelajuan dengan menambahkan parameter --depth Semakin banyak komitmen sejarah, semakin besar peningkatan kelajuan muat turun.

Dan projek yang dimuat turun masih boleh dibangunkan untuk pembangunan seterusnya, dan komitmen baharu, cawangan baharu dan teg boleh dibuat, tetapi anda tidak boleh bertukar kepada komitmen, cawangan dan teg sejarah.

Kami telah menyusun prinsip git: menyimpan fail dan maklumat penyerahan melalui tiga objek: pokok, gumpalan dan komit, dan melaksanakan fungsi seperti cawangan dan teg melalui perkaitan antara komit. Komit ialah titik masuk, dikaitkan dengan semua pokok dan gumpalan.

Apabila kami memuat turun komit, kami memuat turun semua pokok yang berkaitan, gumpalan dan beberapa rujukan (termasuk teg, dahan, dll. Ini ialah prinsip --depth).

Saya harap anda boleh menggunakan teknik ini untuk meningkatkan kelajuan klon git projek besar tanpa beralih kepada komitmen dan cabang sejarah.

Atas ialah kandungan terperinci Menggunakan teknik ini, klon git boleh dipercepatkan berpuluh-puluh kali!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Git vs Github: Kawalan Versi dan Kod Hosting Git vs Github: Kawalan Versi dan Kod Hosting Apr 11, 2025 am 11:33 AM

Git adalah sistem kawalan versi, dan GitHub adalah platform hosting kod berasaskan Git. Git digunakan untuk menguruskan versi kod dan menyokong operasi tempatan; Github menyediakan alat kerjasama dalam talian seperti Penjejakan Isu dan PullRequest.

Cara memuat turun projek git ke tempatan Cara memuat turun projek git ke tempatan Apr 17, 2025 pm 04:36 PM

Untuk memuat turun projek secara tempatan melalui Git, ikuti langkah -langkah ini: pasang git. Navigasi ke direktori projek. Pengklonan Repositori Jauh menggunakan arahan berikut: Git Clone https://github.com/username/repository-name.git

Adakah git sama dengan GitHub? Adakah git sama dengan GitHub? Apr 08, 2025 am 12:13 AM

Git dan GitHub bukan perkara yang sama. Git adalah sistem kawalan versi, dan GitHub adalah platform hosting kod berasaskan Git. Git digunakan untuk menguruskan versi kod, dan GitHub menyediakan persekitaran kerjasama dalam talian.

Cara mengemas kini kod dalam git Cara mengemas kini kod dalam git Apr 17, 2025 pm 04:45 PM

Langkah -langkah untuk mengemas kini kod git: lihat kod: klon git https://github.com/username/repo.git Dapatkan perubahan terkini: Git mengambil Perubahan Gabungan: Git Gabungan Asal/Master Push Change (Pilihan): Git Push Origin Master

Adakah GitHub sukar dipelajari? Adakah GitHub sukar dipelajari? Apr 02, 2025 pm 02:45 PM

GitHub tidak sukar untuk dipelajari. 1) Menguasai Pengetahuan Asas: GitHub adalah sistem kawalan versi berasaskan Git yang membantu mengubah perubahan kod dan pembangunan kolaboratif. 2) Memahami Fungsi Teras: Rekod Kawalan Versi Setiap Penyerahan, Menyokong Kerja Tempatan dan Penyegerakan Jauh. 3) Ketahui cara menggunakan: dari membuat repositori untuk menolak komitmen, menggunakan cawangan dan tarik permintaan. 4) Menyelesaikan masalah biasa: seperti gabungan konflik dan lupa untuk menambah fail. 5) Amalan Pengoptimuman: Gunakan mesej penyerahan yang bermakna, membersihkan cawangan, dan menguruskan tugas menggunakan papan projek. Melalui amalan dan komunikasi komuniti, lengkung pembelajaran Github tidak curam.

Cara menggunakan komitmen git Cara menggunakan komitmen git Apr 17, 2025 pm 03:57 PM

Git Commit adalah arahan yang merekodkan fail perubahan kepada repositori git untuk menyelamatkan gambar keadaan semasa projek. Cara menggunakannya adalah seperti berikut: Tambahkan perubahan ke kawasan penyimpanan sementara Tulis mesej penyerahan ringkas dan bermaklumat untuk menyimpan dan keluar dari mesej penyerahan untuk melengkapkan penyerahan secara opsyen: Tambahkan tandatangan untuk log penyerahan Git Log untuk melihat kandungan penyerahan

Cara menggabungkan kod dalam git Cara menggabungkan kod dalam git Apr 17, 2025 pm 04:39 PM

Proses penggabungan kod Git: Tarik perubahan terkini untuk mengelakkan konflik. Beralih ke cawangan yang anda mahu bergabung. Memulakan gabungan, menyatakan cawangan untuk bergabung. Selesaikan gabungan konflik (jika ada). Pementasan dan komit gabungan, memberikan mesej komit.

Apa yang Harus Dilakukan Sekiranya Muat turun Git Tidak Aktif Apa yang Harus Dilakukan Sekiranya Muat turun Git Tidak Aktif Apr 17, 2025 pm 04:54 PM

Selesaikan: Apabila kelajuan muat turun git perlahan, anda boleh mengambil langkah -langkah berikut: periksa sambungan rangkaian dan cuba menukar kaedah sambungan. Mengoptimumkan Konfigurasi Git: Meningkatkan Saiz Penampan Pos (Git Config-Global Http.PostBuffer 524288000), dan mengurangkan had berkelajuan rendah (git config --global http.lowspeedlimit 1000). Gunakan proksi Git (seperti Git-Proxy atau Git-LFS-Proxy). Cuba gunakan klien Git yang berbeza (seperti sourcetree atau github desktop). Periksa perlindungan kebakaran

See all articles