"Hari ini saya akan memberi tahu Anda tentang dua program kontrol versi paling populer: SVN dan Git."

"SVN bekerja kira-kira seperti yang saya jelaskan di pelajaran sebelumnya. Git sedikit lebih rumit, dan saya berencana untuk membahasnya lebih detail."

"Bisakah Anda memberi saya tautan ke dokumentasi untuk SVN dan Git?"

"Tentu saja, sebentar."

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

https://githowto.com  (ini hanyalah sebuah mahakarya)

"Jadi, Git ."

"Ini sedikit lebih rumit daripada SVN.  Dengan Git, setiap pengguna memiliki repositori lokalnya sendiri selain repositori server. "

"Jadi, di mana Anda berkomitmen?"

"Pengguna selalu berkomitmen pada repositori lokal mereka."

"Tapi bagaimana dengan repositori server?"

"Untuk menyinkronkan repositori lokal dan server, ada perintah Tarik dan Dorong khusus .

"Ada alasan untuk ini. Terkadang seorang programmer perlu melakukan banyak pekerjaan sendiri, yang mungkin melibatkan beberapa ratus komitmen sebelum dapat ditambahkan ke repositori bersama."

"Untuk melakukan ini di SVN, Anda harus memulai cabang terpisah, lalu menggabungkannya dengan bagasi."

"Dengan Git, Anda selalu berkomitmen ke repositori lokal, lalu mengirim semua perubahan sebagai kumpulan ke repositori pusat di server setelah Anda selesai."

"Metode ini mungkin tampak sedikit berlebihan ketika Anda hanya menulis sedikit kode. Tetapi ketika tugas Anda begitu besar sehingga membutuhkan waktu berminggu-minggu, maka Anda memahami bahwa Anda tidak bisa hanya menulis sepanjang waktu tanpa berkomitmen."

"Mengapa Anda tidak bekerja selama dua minggu saja, dan kemudian mengkomit perubahan Anda ke server sekali?"

"Yah, program kontrol versi menawarkan banyak kemudahan."

"Bayangkan Anda berkomitmen setiap hari, dan pada hari ke-10 Anda menemukan bahwa perubahan yang Anda buat selama dua hari terakhir tidak akan berfungsi sesuai rencana. Dan Anda ingin kembali ke kode yang Anda miliki pada hari ke-8 dan mendekati tugas berbeda."

"Anda cukup mengembalikan perubahan yang dibuat ke repositori lokal dalam dua hari terakhir dan kembali ke keadaan yang diinginkan. Ini dikenal sebagai operasi pengembalian ."

"Kamu bilang kamu bisa melakukan itu?"

"Ya. Selain itu, karena riwayat komit disimpan, Anda dapat mengetahui kapan dan mengapa sesuatu dilakukan, dan oleh siapa, fitur/bug yang relevan, dan sepuluh file mana yang secara bersamaan dimodifikasi sebagai bagian dari pekerjaan ini."

"Misalkan perbaikan bug seseorang merusak kode orang lain. Anda dapat memutar kembali ( rollback ) kode tersebut dan melanjutkan seolah-olah perubahan itu tidak pernah terjadi."

"Oke, keren. Saya yakin. Bisakah Anda menunjukkan kepada saya beberapa contoh yang mengilustrasikan cara kerja semua ini?"

"Tentu."

"Inilah cara Anda mengkloning repositori pusat ke komputer lokal Anda:"

Komit dan cabang - 1

"Jadi, operasi Checkout tidak diperlukan lagi."

"Ya. Dan ini adalah contoh operasi Push :"

Komit dan cabang - 2

"Dan operasi Tarik :

Komit dan cabang - 3

"Ah. Itu kurang lebih masuk akal."

"Ngomong-ngomong, ada layanan keren bernama GitHub."

"Setiap programmer dapat mendaftar di sana dan membuat repositori Git mereka sendiri. Saya sarankan agar Anda lebih mengenalnya."

"Berikut adalah beberapa link yang 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 bahwa ada beberapa klien Git."

"Pertama, ada   GitBash , yang memungkinkan Anda memasukkan perintah teks."

"Kemudian ada TortoiseGit , yang merupakan program bagus yang dibangun di dalam Windows Explorer. Ini memungkinkan Anda bekerja dengan file di repositori Git langsung di Explorer."

"IntelliJ IDEA mendukung Git dan memungkinkan Anda menjalankan semua jenis perintah rumit hanya dengan beberapa klik langsung dari dalam lingkungan."

"Jadi, yang mana yang harus saya pelajari?"

"Saya menyarankan agar Anda mengenal mereka semua."

"Anda akan lulus wawancara dan tiba di tempat kerja. Anda akan mendapatkan tautan ke Git, login dan kata sandi — dan hanya itu. Kemudian Anda sendiri."

"Apa maksudmu, «sendirian»?"

"Maksud saya, Anda akan menyiapkan Git sendiri, menarik salinan repositori sendiri,…"

"Dan kemudian Anda harus membangun dan mencoba menjalankan proyek."

"Instruksi build kemungkinan besar juga ada di repositori Git, bersama dengan dokumentasi proyek."

"Pemimpin tim Anda akan mendatangi Anda di malam hari dan berkata,  «Nah, apa yang sudah Anda ketahui sejauh ini?» "

"Dan Anda akan berkata, 'Saya mencoba menyiapkan Git di sini, tetapi belum berhasil. «Anda tidak akan memecat saya, bukan?» "

"Atau, saat masih tengah hari, Anda dapat pergi ke pimpinan tim dan berkata,  «Saya menginstal Git, menarik proyek, dan melihat-lihat dokumentasi, tetapi ada ratusan file dan saya belum memilah semuanya. Di mana apakah instruksi build saat ini?'» "

"Bisakah kamu merasakan perbedaannya?"

"Ya. Dalam kasus kedua, saya adalah programmer bintang rock super, tetapi dalam kasus pertama, saya adalah seorang robo-doofus yang bahkan tidak tahu cara menarik proyek dari Git. Dengan kata lain, saya gagal bahkan sebelum saya memulai pemrograman. Saya kira setelah itu mereka bahkan tidak mengizinkan saya menulis kode."

"Lihat, kamu menjawab pertanyaanmu sendiri. Jadi pelajari dan cari tahu. Tidak ada yang akan melakukannya untukmu."

"Kau tidak akan membantuku?"

"Saya sudah membantu. Kami mengajar bahasa Jawa di sini, kalau-kalau Anda lupa. Untuk yang lainnya, Anda sendirian. Atau apakah kepala Anda hanya untuk minum?"

"Oke, aku mengerti. Terima kasih, Bilaabo!"