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.
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.
Teknologi storan fail asas Git terbahagi terutamanya kepada dua aspek:
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.
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.
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.
Di sini kami mula-mula memperkenalkan Git A pengenalan ringkas kepada pelbagai arahan fail asas:
Proses penyerahan Git masih terdiri daripada tiga medan: Blob, Tree dan Commit.
Dalam langkah di atas, terdapat beberapa perkara yang perlu diberi perhatian Contohnya, semasa menukar gumpalan, anda perlu menambah parameter -g.
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.
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!