"Hari ini saya akan memberitahu anda tentang dua program kawalan versi paling popular: SVN dan Git."

"SVN berfungsi lebih kurang seperti yang saya terangkan dalam pelajaran lepas. Git adalah lebih rumit sedikit, dan saya bercadang untuk membincangkannya dengan lebih terperinci."

"Bolehkah anda memberi saya pautan kepada dokumentasi untuk SVN dan Git?"

"Sudah tentu, sekejap sahaja."

http://svnbook.red-bean.com/en/1.7/svn-book.html

https://githowto.com  (ini hanyalah karya agung)

"Jadi, Git ."

"Ia sedikit lebih rumit daripada SVN.  Dengan Git, setiap pengguna mempunyai repositori tempatan sendiri sebagai tambahan kepada repositori pelayan. "

"Jadi, di mana anda komited?"

"Pengguna sentiasa komited dengan repositori tempatan mereka."

"Tetapi bagaimana dengan repositori pelayan?"

"Untuk menyegerakkan repositori tempatan dan pelayan, terdapat perintah Tarik dan Tekan khas .

"Ada sebab untuk ini. Kadangkala seorang pengaturcara perlu melakukan banyak kerja di pihaknya sendiri, yang mungkin melibatkan beberapa ratus komitmen sebelum ia boleh ditambahkan pada repositori kongsi."

"Untuk melakukan ini dalam SVN, anda perlu memulakan cawangan berasingan, dan kemudian menggabungkannya dengan batang."

"Dengan Git, anda hanya sentiasa komited kepada repositori tempatan, dan kemudian menghantar semua perubahan sebagai satu kelompok ke repositori pusat pada pelayan apabila anda selesai."

"Kaedah ini mungkin kelihatan agak keterlaluan apabila anda hanya menulis sedikit kod. Tetapi apabila tugasan anda terlalu besar sehingga menjangkau beberapa minggu, maka anda faham bahawa anda tidak boleh menulis sepanjang masa tanpa membuat komitmen."

"Mengapa anda tidak boleh bekerja selama dua minggu, dan kemudian lakukan perubahan anda kepada pelayan sekali?"

"Nah, program kawalan versi menawarkan banyak kemudahan."

"Bayangkan bahawa anda komited setiap hari, dan pada hari ke-10 anda mendapati bahawa perubahan yang anda buat sepanjang dua hari lepas tidak akan berfungsi seperti yang dirancang. Dan anda mahu kembali kepada kod yang anda ada pada hari ke-8 dan mendekati tugasan berbeza."

"Anda cuma gulung balik perubahan yang dibuat pada repositori tempatan dalam dua hari lepas dan kembali ke keadaan yang diingini. Ini dikenali sebagai operasi putar balik ."

"Awak cakap saya boleh buat macam tu?"

"Ya. Selain itu, kerana sejarah komit disimpan, anda boleh mengetahui bila dan mengapa sesuatu dilakukan, dan oleh siapa, ciri/pepijat yang berkaitan, dan sepuluh fail yang diubah suai secara serentak sebagai sebahagian daripada kerja ini."

"Katakan pembetulan pepijat seseorang memecahkan kod orang lain. Anda boleh gulung semula ( putar balik ) kod dan teruskan seolah-olah perubahan itu tidak pernah berlaku."

"OK, bagus. Saya yakin. Bolehkah anda tunjukkan saya beberapa contoh yang menggambarkan bagaimana semua ini berfungsi?"

"Tentu."

"Begini cara anda mengklon repositori pusat ke komputer tempatan anda:"

Komit dan cawangan - 1

"Jadi, operasi Checkout tidak lagi diperlukan."

"Ya. Dan berikut ialah contoh operasi Tekan :"

Komit dan cawangan - 2

"Dan operasi Tarik :

Komit dan cawangan - 3

"Ah. Itu lebih kurang masuk akal."

"Dengan cara ini, terdapat perkhidmatan hebat yang dipanggil GitHub."

"Mana-mana pengaturcara boleh mendaftar di sana dan mencipta repositori Git mereka sendiri. Saya cadangkan anda membiasakan diri dengannya."

"Berikut ialah beberapa pautan berguna:"

https://githowto.com

https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

https://articles.assembla.com/using-git/getting-started/set-up-git-on-windows-with-tortoisegit

"Perhatikan bahawa terdapat beberapa pelanggan Git."

"Pertama, terdapat   GitBash , yang membolehkan anda memasukkan arahan teks."

"Kemudian terdapat TortoiseGit , yang merupakan atur cara yang baik terbina dalam Windows Explorer. Ia membolehkan anda bekerja dengan fail dalam repositori Git terus dalam Explorer."

"IntelliJ IDEA menyokong Git dan membolehkan anda melaksanakan semua jenis perintah kompleks dengan hanya beberapa klik terus dari dalam persekitaran."

"Jadi, yang mana satu harus saya pelajari?"

"Saya mengesyorkan agar anda mengenali mereka semua."

"Anda akan lulus temu duga anda dan tiba di tempat kerja. Anda akan mendapat pautan ke Git, log masuk dan kata laluan — dan itu sahaja. Kemudian anda bersendirian."

"Apa maksud anda, «sendiri»?"

"Maksud saya anda akan menyediakan Git sendiri, tarik salinan repositori sendiri,…"

"Dan kemudian anda perlu membina dan cuba menjalankan projek itu."

"Arahan binaan kemungkinan besar juga akan berada dalam repositori Git, bersama dengan dokumentasi projek."

"Ketua pasukan anda akan datang kepada anda pada waktu petang dan berkata,  "Nah, apa yang anda fikirkan setakat ini?" "

"Dan anda akan berkata, 'Saya cuba menyediakan Git di sini, tetapi belum berjaya lagi. «Anda tidak akan memecat saya, bukan?" "

"Atau, semasa masih tengah hari, anda boleh pergi ke ketua pasukan dan berkata,  «Saya telah memasang Git, menarik projek dan menyemak imbas dokumentasi, tetapi terdapat beratus-ratus fail dan saya belum menyelesaikan semuanya lagi. Di mana adakah arahan binaan semasa?'» "

"Bolehkah awak rasakan perbezaannya?"

"Ya. Dalam kes kedua, saya seorang pengaturcara super rock-star, tetapi dalam yang pertama, saya adalah robo-doofus yang tidak tahu bagaimana untuk menarik projek dari Git. Dalam erti kata lain, saya kacau sebelum saya memulakan pengaturcaraan. Saya rasa selepas itu mereka tidak akan membenarkan saya menulis kod."

"Lihat, anda menjawab soalan anda sendiri. Jadi kaji dan fikirkan. Tiada siapa yang akan melakukannya untuk anda."

"Awak tak nak tolong saya ke?"

"Saya sudah tolong. Kami mengajar Jawa di sini, kalau-kalau awak terlupa. Untuk yang lain, awak sendiri. Atau kepala awak hanya untuk minum?"

"Baiklah, saya faham. Terima kasih, Bilaabo!"