Rumah  >  Artikel  >  alat pembangunan  >  Adakah prinsip pelaksanaan git dan svn sama?

Adakah prinsip pelaksanaan git dan svn sama?

WBOY
WBOYasal
2022-01-07 11:04:022978semak imbas

Prinsip pelaksanaan git dan svn adalah berbeza; git ialah sistem kawalan versi teragih, svn bukan ini adalah perbezaan teras antara sistem kawalan versi git dan svn Ia disimpan dalam mod metadata , manakala svn disimpan dalam mod fail.

Adakah prinsip pelaksanaan git dan svn sama?

Persekitaran pengendalian artikel ini: sistem Windows 10, Git versi 2.30.0, komputer Dell G3.

Adakah prinsip pelaksanaan git dan svn sama?

Git ialah sistem kawalan versi teragih sumber terbuka, digunakan untuk menangani sebarang masalah dengan cepat dan cekap Mengunjurkan kecil atau besar.

Git ialah perisian kawalan versi sumber terbuka yang dibangunkan oleh Linus Torvalds untuk membantu mengurus pembangunan kernel Linux.

Git berbeza daripada alat kawalan versi yang biasa digunakan seperti CVS dan Subversion Ia menggunakan perpustakaan versi teragih dan tidak memerlukan sokongan perisian sebelah pelayan.

1. Perbezaan antara Git dan SVN

GIT bukan sahaja sistem kawalan versi, ia juga sistem pengurusan kandungan (CMS), sistem pengurusan kerja, dll.

Jika anda seorang yang mempunyai latar belakang dalam menggunakan SVN, anda perlu membuat perubahan ideologi tertentu untuk menyesuaikan diri dengan beberapa konsep dan ciri yang disediakan oleh GIT.

Perbezaan antara Git dan SVN:

  • 1 GIT diedarkan, SVN bukan: Ini ialah GIT dan sistem kawalan versi tidak teragih lain, seperti SVN , CVS, dsb., perbezaan teras.

  • 2. GIT menyimpan kandungan sebagai metadata, manakala SVN menyimpan kandungan sebagai fail: semua sistem kawalan sumber menyembunyikan metamaklumat fail dalam fail seperti folder .svn, .cvs dll.

  • 3. Cawangan GIT berbeza daripada cawangan SVN: cawangan tidak istimewa sama sekali dalam SVN, ia hanyalah satu lagi direktori dalam repositori.

  • 4. GIT tidak mempunyai nombor versi global, tetapi SVN mempunyai: Setakat ini, ini adalah ciri terbesar yang kurang GIT berbanding SVN.

  • 5. Integriti kandungan GIT lebih baik daripada SVN: Storan kandungan GIT menggunakan algoritma cincang SHA-1. Ini memastikan integriti kandungan kod dan mengurangkan gangguan kepada repositori sekiranya berlaku kegagalan cakera dan masalah rangkaian.

2. Prinsip Git: Ruang kerja Git, kawasan pementasan dan repositori

Konsep asas

Mari kita mulakan dengan Memahami konsep ruang kerja Git, kawasan pementasan dan repositori

Ruang Kerja: Ia ialah direktori yang boleh anda lihat pada komputer anda.

Kawasan storan sementara: dipanggil pentas, atau indeks dalam bahasa Inggeris. Ia biasanya disimpan dalam fail indeks (.git/index) di bawah "direktori .git", jadi kami kadangkala memanggil kawasan storan sementara indeks (indeks).

Repositori: Terdapat direktori tersembunyi .git dalam ruang kerja Ini bukan ruang kerja, tetapi repositori Git.

Rajah berikut menunjukkan hubungan antara kawasan kerja, kawasan pementasan dalam repositori dan repositori:

Adakah prinsip pelaksanaan git dan svn sama?

Bahagian kiri rajah ialah kawasan kerja, dengan perpustakaan versi di sebelah kanan. Kawasan bertanda "indeks" dalam repositori ialah kawasan pementasan (peringkat, indeks), dan kawasan bertanda "induk" ialah pokok direktori yang diwakili oleh cawangan induk.

Dalam gambar, kita dapat melihat bahawa "KEPALA" sebenarnya adalah "kursor" yang menunjuk ke cawangan induk. Oleh itu, apabila HEAD muncul dalam arahan yang ditunjukkan dalam rajah, ia boleh digantikan dengan master.

Kawasan yang dikenal pasti oleh objek dalam gambar ialah perpustakaan objek Git, yang sebenarnya terletak dalam direktori ".git/objects", yang mengandungi pelbagai objek dan kandungan yang dicipta.

Apabila arahan "git add" dilaksanakan pada fail yang diubah suai (atau ditambah) dalam ruang kerja, pepohon direktori dalam kawasan storan sementara dikemas kini dan kandungan fail diubah suai (atau ditambah) dalam ruang kerja ditulis ke objek baharu dalam pustaka objek, dan ID objek direkodkan dalam indeks fail kawasan storan sementara.

Apabila melakukan operasi komit (git commit), pepohon direktori dalam kawasan storan sementara ditulis ke perpustakaan versi (pustaka objek), dan cawangan induk akan dikemas kini dengan sewajarnya. Iaitu, pokok direktori yang ditunjuk oleh induk ialah pokok direktori bagi kawasan simpanan sementara pada masa penyerahan.

Apabila arahan "git reset HEAD" dilaksanakan, pepohon direktori dalam kawasan pementasan akan ditulis semula dan digantikan dengan pepohon direktori yang ditunjuk oleh cawangan induk, tetapi ruang kerja tidak akan terjejas.

Apabila perintah "git rm --cached " dilaksanakan, fail akan dipadamkan terus dari kawasan storan sementara dan ruang kerja tidak akan ditukar.

Apabila perintah "git checkout ." atau "git checkout -- " dilaksanakan, fail dalam ruang kerja akan digantikan dengan semua atau fail yang ditentukan dalam kawasan pementasan. Operasi ini berbahaya dan akan mengosongkan perubahan dalam ruang kerja yang belum ditambahkan ke kawasan pementasan.

Apabila arahan "git checkout HEAD ." atau "git checkout HEAD " dilaksanakan, semua atau sebahagian daripada fail dalam cabang induk yang ditunjuk oleh HEAD akan digunakan untuk menggantikan kawasan pementasan dan ruang kerja. Perintah ini juga amat berbahaya, kerana ia bukan sahaja akan mengosongkan perubahan yang tidak dikomitkan dalam ruang kerja, tetapi juga mengosongkan perubahan yang tidak dikomitkan dalam kawasan pementasan.

Pembelajaran yang disyorkan: "Tutorial Git"

Atas ialah kandungan terperinci Adakah prinsip pelaksanaan git dan svn sama?. 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