Saya bekerja di departemen di mana tidak ada yang pernah menggunakan kontrol sumber sebelumnya, termasuk saya.
Saya mencoba mendorong konsep itu. Saya telah menghabiskan sedikit saat meneliti SVN. Saya beberapa dasar belajar. Saya dapat membuat / memperbarui / checkout / komit dengan baris perintah dan dari Tortoise. Saya mulai belajar cara memberi tag dan bercabang tetapi masih banyak bingung tentang konflik antara cabang dan batang dll. Saya masih belajar, tetapi saya tidak memiliki orang fisik yang dapat menunjukkan kepada saya apa pun. Semuanya dari buku / tutorial dan coba-coba.
Dari apa yang saya baca online sepertinya git
adalah hal yang lebih baik untuk diketahui, tetapi juga lebih rumit. Saya tidak ingin membebani diri saya sendiri. Haruskah saya terus menguasai svn sebelum pindah ke git atau akankah saya lebih bijaksana untuk hanya melompat ke git sekarang?
Apakah ada pro dan kontra untuk kedua pendekatan tersebut?
Jawaban:
Tidak
Git sangat berbeda dari SVN, itu tidak akan membantu Anda. Jika ada, Anda akan mencari perintah "perbarui" dan "komit" dan bertanya-tanya mengapa semuanya berbeda.
Mulailah dengan Git dari Bawah ke Atas dan pergi dari sana.
Membandingkan sistem pembaruan pola komit / pembaruan terpusat standar dengan Git seperti membandingkan bus dengan angkutan massal. Sebuah bus akan membawa Anda (dan orang lain) dari titik A ke titik B menggunakan rute yang sama persis. Transit massal akan membawa Anda dari titik A ke titik B menggunakan rute apa pun yang Anda suka.
Didistribusikan itu sendiri memiliki kelemahan yang harus Anda ketahui. Dibutuhkan lebih banyak pekerjaan untuk menjaga semua orang di halaman yang sama. Ini menawarkan peningkatan fleksibilitas yang sangat besar.
Hash Revisi vs. Angka
Seseorang menyebut Git menggunakan hash SHA1 sementara Hg menggunakan angka.
Pertama, Anda jarang (jika pernah) perlu berurusan langsung dengan hash dalam komitmen / penarikan harian. Anda perlu menarik log dan menarik hash jika Anda melakukan diff atau beberapa item rebasing yang lebih rumit.
Dengan Git, setiap orang memiliki hash yang sama. Repositori yang berbeda tidak memiliki angka komit yang berbeda dan semua orang ada di halaman yang sama. Dengan Hg ini kurang begitu. Dalam praktiknya jika Anda harus menarik hash komit dan bekerja dengannya (baik untuk membandingkan atau melintasi garis waktu kode), lebih mudah untuk menyinkronkan dengan orang lain ketika Anda memiliki hash alih-alih angka.
sumber
Tidak, tolong jangan repot-repot.
Serius, mulai dari DVCS. Fakta bahwa SVN populer tidak menjadikannya standar. Linus Torvalds akan memberi tahu Anda bahwa itu mungkin membusuk otak Anda .
Baca artikel / pengantar yang luar biasa ini oleh Joel Spolsky bernama Subversion Re-education .
Anda mungkin juga tertarik membaca pertanyaan lain ini: Saya seorang pecandu Subversion, mengapa saya harus mempertimbangkan atau tidak mempertimbangkan Mercurial atau Git atau DVCS lainnya?
Memilih antara DVCS
Secara pribadi, saya menggunakan keduanya lincah dan git, dan saya pikir penting untuk mengetahui keduanya. Bacaan yang disarankan tentang ini adalah Git vs Mercurial: Please Relax (lihat contoh git-addremove). Dua kutipan dari artikel itu menurut saya jumlahkan.
Mengenai git:
Tentang lincah:
Banyak proyek dapat ditemukan di github dan git lebih kuat, tetapi juga bisa agak menakutkan bagi pendatang baru, khususnya pengguna windows. Ada juga bitbucket (setara dengan github untuk mercurial).
Rekomendasi saya: mulai dengan lincah dan segera setelah Anda merasa nyaman dengan itu, ambil git; ini bukan tentang alat, ini tentang orang yang bekerja dengan Anda .
Apa yang saya anggap sebagai penggunaan subversion yang nyata dan praktis adalah, bukan untuk bekerja dengan orang lain, tetapi untuk mungkin menerapkan updater untuk aplikasi produksi Anda, inilah alasannya:
svn up
dan proyek Anda serta ketergantungannya diperbarui.Mengutip Thorbjørn di utas lainnya ini :
Sunting : Jika ada VCS yang harus Anda ketahui sebelum Git, itu bisa jadi Mercurial (antarmuka CLI yang lebih ramah dan bagus untuk diperkenalkan dengan konsep yang didistribusikan). Saran ini berlaku khusus untuk mereka yang berasal dari Subversion karena CLI juga serupa dalam beberapa derajat. Kontrol Versi Terdistribusi dapat lebih mudah dipelajari daripada Kontrol Versi Terpusat, karena Anda hanya khawatir tentang instance repositori Anda, dan bukan bagian klien dan server secara terpisah .
sumber
Anda harus mempelajari apa yang ingin Anda gunakan. Git populer, seperti halnya Mercurial juga menikmati popularitas. Git / Mercurial adalah sistem kontrol sumber terdistribusi.
Hal yang paling penting ketika memperkenalkan konsep baru ke tim (dan sangat disayangkan bahwa kontrol versi dianggap sebagai topik baru bagi terlalu banyak tim), itu membantu untuk menguraikan tujuan dan kriteria evaluasi Anda. Anda tidak harus bersikap super formal tentang hal itu, tetapi tanyakan pada diri sendiri pertanyaan-pertanyaan berikut:
Saat mengevaluasi alternatif Anda, Anda harus mempertimbangkan hal-hal penting yang perlu dilakukan oleh semua VCS:
Pada akhirnya, lakukan evaluasi cepat untuk menentukan apakah sistem VCS atau DVCS standar akan menjadi yang terbaik untuk tim Anda. Anda harus memilih alat yang memberikan jumlah rasa sakit paling sedikit atau kemungkinan tidak akan diadopsi. Setelah itu, evaluasi alternatif Anda yang paling sesuai dengan kebutuhan Anda.
Pada akhirnya, pelajari apa yang ingin Anda gunakan.
sumber
Saya pikir banyak orang menganggap git lebih rumit daripada svn karena berbeda. Setelah menggunakan subversi (atau cvs, dll.) Untuk sementara waktu, mungkin sulit untuk secara mental beralih mode ke model DVCS. Berdasarkan hal itu, saya dapat mengatakan bahwa mungkin Anda perlu meneliti VCS tradisional seperti subversi bersama-sama dengan meneliti DVCS seperti git.
Meskipun git adalah VCS pilihan saya, saya akan mengatakan bahwa mungkin yang terbaik untuk belajar subversi juga. Untuk satu, masih ada banyak subversi dan repositori cvs di luar sana yang Anda mungkin harus berinteraksi dengan satu hari, dan juga Anda akan memiliki pemahaman yang lebih baik tentang keuntungan dan kerugian yang tepat dari DVCS dibandingkan VCS tradisional.
sumber
git-svn clone
untuk berinteraksi dengan repositori.Akan tidak produktif untuk mempelajari svn dan kemudian git
Berikut ini beberapa alasan:
Saran saya adalah belajar git saja.
sumber
Ada beberapa hal yang secara umum sama di GIT dan SVN dan beberapa tidak.
Secara umum sama, Anda harus mengambilnya dengan mudah.
Berbeda antara keduanya.
Tidak mengatakan Anda harus atau tidak boleh berubah sekarang (saya pikir itu panggilan Anda), hanya ingin menunjukkan itu sebagai sesuatu yang harus diperhitungkan. Jika Anda yakin ingin mencoba Git, Anda dapat memutuskan untuk beralih sekarang untuk menyelamatkan diri Anda belajar sesuatu di SVN yang berbeda di Git.
sumber
Wow; 12 jawaban dan semua orang masih mengajukan pertanyaan ...
Tidak, Subversi bukanlah prasyarat untuk Git.
Tidak ada pemetaan yang bersih antara Subversion dan Git - jika Anda berencana untuk belajar keduanya, Anda hanya perlu menderita karena mereka menggunakan istilah yang sama untuk tindakan yang berbeda. (Dan istilah berbeda untuk tindakan yang sama.)
svn commit
adalah hal yang berbeda darigit commit
.Ini adalah dua alat yang dibagi oleh bahasa umum.
Pertanyaan Anda, dan sebagian besar jawaban lain, menganggap bahwa git adalah sejenis svn ++; "Svn yang lebih baik". Bukan itu. Keduanya adalah alat yang berbeda yang bekerja di ruang yang sama, seperti mobil dan sepeda motor.
Saya menyarankan Anda memilih satu, menguasainya, dan mulai menggunakannya di tim Anda. Mempelajari kontrol versi akan sulit bagi orang yang belum pernah menggunakannya sebelumnya. VCS Anda akan menjadi bagian penting dari infrastruktur Anda, dan belajar untuk memercayainya melibatkan membangun kebiasaan kerja baru. Butuh beberapa saat.
(Either way, pastikan Anda memiliki sysadmin Anda mencadangkan repositori master - kehilangan kontrol sumber Anda akan menjadi bencana besar.)
sumber
Mungkin tidak - ada perbedaan yang cukup antara berbasis server dan didistribusikan sehingga Anda mungkin hanya akan membingungkan diri sendiri lebih lanjut.
Mulailah dari awal untuk mengikuti praktik yang baik dengan DVCS pilihan Anda seolah-olah dari awal dan Anda mungkin akan jauh lebih bahagia.
Pergi melihat Mercurial (jika Anda tidak ingin kewalahan).
sumber
Git hanya sedikit lebih rumit daripada Subversion, karena ada perbedaan dalam Git antara melakukan dan mendorong ke repositori pusat.
Layak untuk belajar Git sementara Anda memiliki kesempatan untuk membuat pikiran Anda tidak hancur oleh Subversion.
sumber
Saya tidak berpikir memahami Subversion diperlukan untuk memahami Git.
Perbedaan terbesar dengan Git dan Mercurial dari Subversion, setidaknya bagi saya, adalah bahwa Anda memiliki repositori lokal yang bekerja dengan Anda, Anda masuk dan keluar dari sana sampai kode Anda berfungsi, keluar dari repo pusat, memperbaiki konflik dan periksa kembali dan dorong ke server.
sumber
Saya sangat suka git di lingkungan Unix (Linux, MacOS X). Di windows, ini sedikit hacky. Saya akan mempertimbangkan Mercurial jika saya memiliki Windows dalam persamaan.
Saya menyukai kelas sejarah Anda, coba SCCS, RCS, CVS, Subversion dan kemudian gunakan sesuatu yang berguna seperti Git atau Mercurial.
Git dan Mercurial adalah equipotent, bonus besar dari Git adalah github . Tetapi jika Anda tidak ingin melakukan outsourcing kontrol versi Anda, github tidak lagi dalam persamaan.
sumber
sistem kontrol versi berbagi kesamaan dengan bahasa pemrograman di bahwa yang pertama Anda belajar akan mengambil sebagian waktu. Setelah itu, mengambil yang baru adalah hanya masalah belajar bagaimana konsep inti yang diungkapkan oleh sistem baru.
Anda dapat mempelajari Git sekarang dan menginvestasikan waktu untuk mempelajari Suvbersion nanti jika perlu.
sumber
Nggak. Unduh Git, buat akun github, dan main-main selama beberapa hari untuk repo, dll. Git cukup sepele untuk mempercepatnya. Pelajari 5 atau 6 perintah bash dan Anda dapat melakukan semua tugas penting. Saya biasanya lebih suka "idiot-proofness" dari GUI, tetapi Bash Git semudah yang didapat. Juga, Git Gui cukup baik jika Anda lebih suka rute itu. Saya tidak benar-benar melihat manfaat yang akan Anda lihat dari belajar SVN. Saya melewati periode beberapa waktu yang lalu di mana saya mengevaluasi beberapa sistem Kontrol Versi yang berbeda untuk proyek open source baru. Saya mencoba SVN, Bazaar, Git, dan beberapa lainnya dan mempelajari dasar-dasar masing-masing. YMMV, tapi Git adalah jauh yang paling mudah. Tidak ada yang salah dengan mempelajari SVN juga, tetapi itu benar-benar tidak akan membantu Anda untuk belajar Git.
sumber