Rumah  >  Artikel  >  alat pembangunan  >  Aliran pemprosesan asas git

Aliran pemprosesan asas git

王林
王林asal
2023-05-20 09:11:07544semak imbas

Kepopularan platform pengehosan kod seperti GitHub dan GitLab telah menjadikan Git sebagai alat kawalan versi yang banyak dibincangkan, dan semakin ramai orang memahami cara Git berfungsi. Walau bagaimanapun, memahami penampilan Git hanyalah menggunakan Git Untuk benar-benar memahami Git, anda juga perlu memahami aliran pemprosesan asas Git.

Tinjauan keseluruhan struktur asas Git

Git ialah sistem kawalan versi teragih, yang sepadan dengannya ialah sistem kawalan versi terpusat (seperti SVN) Oleh kerana sifat teragih Git, setiap repositori Git adalah repositori lengkap.

Direktori kerja Git mengandungi dua bahagian: Objek gudang Git dan pepohon kerja Status objek gudang Git dan pepohon kerja boleh dianalogikan masing-masing dengan hubungan antara alias, pautan keras dan pautan lembut.

Kaedah storan fail asas Git

Teknologi storan fail asas Git terbahagi terutamanya kepada dua aspek:

  1. Storan objek
  2. Fail boleh mampat Penggunaan format

Storan objek

Git menyimpan semua perubahan kod sebagai objek satu demi satu, antaranya objek utama ialah gumpalan, pokok dan komit. Antaranya, blob ialah petikan kandungan kod, pokok ialah petikan set fail dan direktori, dan komit ialah petikan perubahan kod.

Pembaca yang berhati-hati akan mendapati bahawa objek ini agak serupa dengan mekanisme inode dalam sistem Linux Nod fail inode boleh mewakili fail atau direktori, dan nod fail inode mengandungi maklumat seperti nombor blok cakera. Dalam Git, blob ialah objek syot kilat kandungan fail dalam nod fail inode, pokok ialah objek syot kilat direktori inode, dan komit ialah syot kilat versi yang terdiri daripada berbilang nod fail inode.

Dalam Git, objek biasanya diwakili sebagai cincang SHA1. Nilai cincang SHA1 ialah rentetan heksadesimal 40 aksara. Git menggunakan cincang SHA1 untuk menetapkan pengecam unik kepada setiap versi, setiap fail dan direktori, dan setiap komit.

Penggunaan format fail boleh mampat

Teknologi asas Git ialah menambahkan beberapa metadata pada fail untuk mengendalikan perubahan kod. Metadata selalunya merupakan beberapa keadaan perantaraan, seperti menukar maklumat antara dua komit Maklumat ini boleh dimampatkan ke dalam fail kecil dan dinyahmampatkan apabila diperlukan.

Format fail lalai yang digunakan oleh Git ialah format fail pek. Packfile ialah format storan objek Git yang sangat termampat yang boleh mengarkibkan berbilang objek ke dalam satu fail untuk pemindahan apabila Git melakukan operasi merentas rangkaian.

Aliran pemprosesan teras asas Git

Dalam kandungan sebelumnya, kami mempelajari tentang objek Git dan teknologi penyimpanan fail asas secara terperinci, dan seterusnya kami akan memasuki aliran pemprosesan teras asas Git.

Proses permulaan Git

  1. Buat direktori.git/
  2. Buat subdirektori.git/objects/
  3. Buat subdirektori.git/ refs/
  4. Buat fail HEAD kosong
  5. Buat fail indeks kosong

Arahan fail asas Git

Di sini kami mula-mula memperkenalkan Git A pengenalan ringkas kepada pelbagai arahan fail asas:

  1. arahan objek hash: digunakan untuk menukar fail kepada objek Git.
  2. arahan cat-file: digunakan untuk memaparkan kandungan objek Git.
  3. arahan ls-tree: digunakan untuk memaparkan kandungan pokok Git tertentu.
  4. perintah indeks kemas kini: digunakan untuk menambah fail atau direktori pada indeks Git.
  5. arahan write-tree: digunakan untuk menukar indeks Git kepada objek pokok Git.

Proses penyerahan Git

Proses penyerahan Git masih terdiri daripada tiga medan: Blob, Tree dan Commit.

  1. Blob: digunakan untuk mewakili metadata setiap fail dalam kod, termasuk nama fail, jenis fail dan sudah tentu nilai cincang SHA1, dsb.
  2. Pokok: Berdasarkan Blob dalam langkah sebelumnya, kumpulkan fail dan direktori yang sepadan untuk membentuk pokok syot kilat dan simpannya dalam nod Git.
  3. Komit: Kumpul dua objek di atas serta maklumat pengguna yang diserahkan untuk membentuk petikan versi.

Dalam langkah di atas, terdapat beberapa perkara yang perlu diberi perhatian Contohnya, semasa menukar gumpalan, anda perlu menambah parameter -g.

Proses cawangan Git

Dalam Git, cawangan ialah penunjuk bebas yang menunjuk ke objek terakhir diserahkan. Terdapat dua jenis cawangan: cawangan tempatan dan cawangan terpencil.

Selepas cawangan tempatan dibuat, penambahan penyerahan baharu akan secara automatik mengalihkan HEAD untuk menunjuk kepada penyerahan terkini. Dalam tempoh ini, arahan daftar keluar digunakan untuk bertukar antara cawangan yang berbeza. Cawangan jauh merujuk kepada cara bekerjasama kod antara perpustakaan tempatan yang berbeza.

Ringkasan

Artikel ini menghuraikan aliran pemprosesan asas Git dari dua aspek: kaedah penyimpanan fail asas Git dan aliran pemprosesan teras asas Git. Melalui penjelasan objek Git dan teknologi penyimpanan fail asas, kami memahami seni bina asas Git. Artikel ini juga memperkenalkan proses pemprosesan teras asas Git, termasuk proses permulaan Git, arahan fail asas Git, proses penyerahan Git dan proses cawangan Git. Melalui pemahaman mendalam tentang aliran pemprosesan asas Git, kami dapat memahami dengan lebih baik mekanisme pengendalian Git dan menggunakan Git untuk kawalan versi dengan lebih cekap.

Atas ialah kandungan terperinci Aliran pemprosesan asas git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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
Artikel sebelumnya:git menukar kumpulan cawanganArtikel seterusnya:git menukar kumpulan cawangan