Rumah  >  Artikel  >  alat pembangunan  >  Apakah itu git dan svn

Apakah itu git dan svn

青灯夜游
青灯夜游asal
2021-11-30 14:09:445869semak imbas

Git ialah sistem kawalan versi teragih sumber terbuka yang digunakan untuk mengendalikan pengurusan versi projek daripada projek kecil hingga sangat besar dengan berkesan dan pantas. svn ialah sistem kawalan versi berpusat sumber terbuka yang digunakan oleh berbilang orang untuk bersama-sama membangunkan projek yang sama, merealisasikan sumber yang dikongsi, dan akhirnya mencapai pengurusan berpusat.

Apakah itu git dan svn

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi Git 2.30.0, komputer Dell G3.

Apa itu git

Git ialah sistem kawalan versi teragih sumber terbuka percuma untuk pemprosesan yang tangkas dan cekap bagi sebarang tugas atau tugasan kecil projek besar

Git ialah sistem kawalan versi teragih sumber terbuka yang digunakan untuk mengendalikan pengurusan versi projek dengan berkesan dan cepat daripada projek kecil hingga sangat besar. Git ialah perisian kawalan versi sumber terbuka yang dibangunkan oleh Linus Torvalds untuk membantu mengurus pembangunan kernel Linux.

Perbezaan terbesar antara diedarkan dan berpusat ialah pembangun boleh menyerahkan secara setempat, dan setiap pembangun menyalin repositori Git lengkap pada mesin tempatan dengan mengklon (klon git).

Git ialah sistem kawalan versi teragih

2 (1).png

Git mempunyai ciri-ciri berikut:

  • Repositori setiap klon dalam Git adalah sama. Anda boleh mencipta repositori anda sendiri daripada klon mana-mana repositori, dan repositori anda juga boleh digunakan sebagai sumber untuk orang lain jika anda mahu.

  • Setiap operasi pengekstrakan Git sebenarnya adalah sandaran lengkap repositori kod.

  • Penyerahan selesai sepenuhnya secara tempatan, tiada orang lain yang perlu memberi anda kebenaran, anda adalah tuan kepada repositori anda dan penyerahan akan sentiasa berjaya.

  • Malah perubahan berdasarkan versi lama boleh diserahkan dengan jayanya, dan penyerahan akan membuat cawangan baharu berdasarkan versi lama.

  • Penyerahan Git tidak akan terganggu sehingga anda berpuas hati sepenuhnya dengan kerja anda PUSH kepada orang lain atau orang lain TARIK repositori anda akan berlaku semasa proses PULL dan PUSH diselesaikan secara automatik akan menggesa anda untuk menyelesaikannya secara manual.

  • Penyelesaian konflik bukan lagi pertandingan penyerahan seperti SVN, tetapi gabungan dan penyelesaian konflik dilakukan apabila diperlukan.

  • Git juga boleh mensimulasikan mod kerja terpusat

  • Repositori Git disatukan pada pelayan

  • Anda boleh membenarkan repositori Git: siapa yang boleh membuat repositori, siapa yang boleh PUSH ke repositori, dan siapa yang boleh membaca (mengklon) repositori

  • Ahli pasukan akan terlebih dahulu Mengklon repositori versi pelayan secara setempat; dan kerap tarik (PULL) kemas kini terkini daripada repositori pelayan; dengan repositori (PULL), perubahan akan diperoleh secara automatik

  • Model kerja terpusat Git sangat fleksibel

  • Anda boleh memutuskan sambungan sepenuhnya daripada rangkaian di mana pelayan Git berada, seperti semasa bekerja dalam perjalanan/perjalanan perniagaan, dan masih menggunakan perpustakaan kod seperti biasa

  • Anda hanya perlu boleh mengakses rangkaian di mana pelayan Git terletak , PULL dan PUSH boleh melengkapkan penyegerakan dengan pelayan dan komit

  • Git menyediakan arahan rebase, yang boleh menjadikan perubahan anda kelihatan berdasarkan pelaksanaan kod terkini perubahan

  • Git mempunyai lebih banyak mod kerja untuk dipilih daripada Subversion

  • Apakah itu svn

SVN ialah singkatan daripada subversi Ia adalah sistem kawalan versi sumber terbuka Melalui pengurusan cekap sistem pengurusan cawangan, secara ringkasnya, ia digunakan untuk berbilang orang untuk bersama-sama membangunkan projek yang sama untuk mencapai perkongsian. sumber dan mencapai kepekatan akhir pengurusan gaya. SVN mengurus data yang berubah dari semasa ke semasa. Data ini diletakkan dalam repositori pusat. Arkib ini sama seperti pelayan fail biasa, tetapi ia mengingati setiap perubahan fail. Dengan cara ini anda boleh memulihkan fail kepada versi yang lebih lama atau menyemak imbas sejarah perubahan fail. Subversion ialah sistem tujuan umum yang boleh digunakan untuk mengurus sebarang jenis fail, termasuk kod sumber program.

SVN ialah sistem kawalan versi terpusat.

Sistem kawalan versi terpusat mempunyai pelayan terurus tunggal yang menyimpan semakan semua fail dan orang yang bekerjasama menyambung ke pelayan ini melalui klien dan mengeluarkan fail terkini atau menyerahkan kemas kini.

Ciri-ciri svn boleh diringkaskan seperti berikut:

1 (1).png

Setiap repositori mempunyai URL unik (alamat rasmi) , setiap pengguna mendapatkan kod dan data daripada alamat ini;

  • untuk mendapatkan kemas kini kod, mereka hanya boleh menyambung ke perpustakaan versi unik ini dan menyegerakkan untuk mendapatkan data terkini; >

    Penyerahan mesti mempunyai sambungan rangkaian (repositori bukan tempatan);
  • Penyerahan memerlukan kebenaran Jika tiada kebenaran menulis, penyerahan akan gagal; Jika orang lain menyerahkan sebelum anda, ia akan menggesa "Perubahan adalah berdasarkan versi lapuk, kemas kini dahulu dan kemudian serahkan"... dan seterusnya; kelajuan: mereka yang cepat, Hantar dahulu, dan tiada apa yang akan berlaku jika anda lambat, hantar kemudian, anda mungkin menghadapi penyelesaian konflik yang menyusahkan.

  • Faedah: Semua orang boleh melihat sedikit sebanyak perkara yang sedang diusahakan oleh orang lain dalam projek itu. Pentadbir juga boleh mengawal kebenaran setiap pembangun dengan mudah.

  • Kelemahan: Satu titik kegagalan pada pelayan pusat.
  • Jika ia tidak berfungsi selama satu jam, tiada siapa yang akan dapat menyerahkan kemas kini, pemulihan, perbandingan, dsb. dalam masa ini, dan mustahil untuk bekerjasama. Jika cakera pelayan pusat gagal dan tiada sandaran dibuat atau sandaran tidak cukup tepat pada masanya, terdapat risiko kehilangan data. Senario kes terburuk ialah kehilangan sepenuhnya semua rekod perubahan sejarah bagi keseluruhan projek, kecuali beberapa data syot kilat yang diekstrak oleh pelanggan, tetapi ini masih menjadi masalah kerana anda tidak dapat menjamin bahawa semua data telah diekstrak.

  • Pada dasarnya, svn hanya mengambil berat tentang perbezaan khusus dalam kandungan fail. Setiap kali ia direkodkan fail yang telah dikemas kini, serta baris dan kandungan yang telah dikemas kini.

Skop svn dan git yang boleh digunakan yang berbeza

Objek yang boleh digunakan yang berbeza. Git sesuai untuk pembangun yang terlibat dalam projek sumber terbuka. Kerana tahap kepakaran mereka yang tinggi, mereka lebih mementingkan kecekapan daripada kemudahan penggunaan. SVN berbeza, ia sesuai untuk pasukan pembangunan syarikat biasa. Ia lebih mudah digunakan.

    Masa penggunaan adalah berbeza.
  • Git sesuai untuk pembangunan satu projek dengan berbilang peranan pembangunan melalui Internet, dan SVN sesuai untuk pembangunan berbilang projek selari dalam perusahaan yang diselaraskan oleh pengurus projek.

  • Strategi pengurusan kebenaran adalah berbeza.
  • Git tidak mempunyai kawalan pengurusan kebenaran yang ketat Selagi anda mempunyai akaun, anda boleh mengeksport, mengimport kod dan juga melakukan operasi rollback. SVN mempunyai pengurusan kebenaran yang ketat, dan boleh mengawal kebenaran pada subdirektori tertentu mengikut kumpulan atau individu. Bezakan antara kebenaran membaca dan menulis. Lebih tegas lagi, operasi rollback tidak disokong. Pastikan kod sentiasa boleh dikesan.

  • Skop penggunaan cawangan adalah berbeza.
  • Dalam Git, anda hanya boleh cawangan seluruh gudang, dan setelah dipadamkan, ia tidak boleh dipulihkan. Dalam SVN, cawangan boleh menyasarkan mana-mana subdirektori, yang pada asasnya adalah operasi penyalinan. Oleh itu, anda boleh membuat banyak cawangan hierarki, memadamnya apabila ia tidak diperlukan, dan hanya menyemak versi SVN lama apabila diperlukan pada masa hadapan.

  • Berdasarkan perkara ketiga, Git sesuai untuk projek perisian tulen, biasanya beberapa projek sumber terbuka, seperti kernel Linux, busybox, dsb. Sebaliknya, SVN mahir dalam pengurusan pelbagai projek.
  • Sebagai contoh, anda boleh menyimpan bsp/dokumen reka bentuk/sistem fail/aplikasi/skrip kompilasi automatik projek telefon mudah alih dalam gudang SVN atau menyimpan sistem fail lima projek telefon mudah alih dalam SVN. n (bilangan projek)*m (bilangan komponen) repositori mesti diwujudkan dalam git. Dalam SVN, hanya sehingga n atau m diperlukan.

  • Git menggunakan ID 128-bit sebagai nombor versi, dan anda mesti menunjukkan cawangan mana itu semasa mendaftar keluar manakala SVN menggunakan nombor siri yang bertambah sebagai nombor versi unik secara global, yang lebih ringkas dan mudah difahami. Walaupun anda boleh menggunakan gittag untuk mencipta beberapa alias literal, lagipun, itu hanya untuk versi khas.
  • Kebolehkesanan

  • Proses pembangunan tipikal git ialah: menubuhkan cawangan, membangun, menyerahkan kepada tuan tempatan, dan memadamkan cawangan. Akibat daripada ini ialah butiran pengubahsuaian sebelumnya akan hilang.
  • Lakukan perkara yang sama di bawah SVN tanpa kehilangan sebarang butiran.

  • Kemas kini separa, pemulihan separa.

    Memandangkan SVN mencipta folder .svn dalam setiap folder untuk pengurusan, ia boleh melaksanakan kemas kini separa atau memulihkan dengan mudah. Jika anda hanya ingin mengemas kini bahagian tertentu, svn boleh melakukannya dengan baik. Pada masa yang sama, jika kod ditulis dengan tidak betul, pemulihan separa boleh dicapai dengan mudah Sudah tentu, git juga boleh dipulihkan melalui versi sejarah, tetapi pemulihan separa tidak boleh dicapai dengan mudah.

  • Pembelajaran yang disyorkan: "
  • Tutorial Git

    "

Atas ialah kandungan terperinci Apakah itu git dan svn. 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:Apa itu git commitArtikel seterusnya:Apa itu git commit