Niçin herkes git'i merkezi bir şekilde kullanıyor?
Hiç tanışmadık, siz nasılsınız diyorsunuz millet? ;)
İkincisi, Git'te bulduğunuz fakat CVS veya SVN'de bulunmayan daha başka özellikler var. Belki de sadece bu olması gerektiğini farz ediyor tek özelliği için herkes .
Birçok insanın CVS veya SVN gibi merkezi olarak kullanabileceğinden emin olun. Ancak, doğası gereği dağıtılmış bir VCS ile gelen diğer özelliği de unutmayın: tüm kopyalar az ya da çok "tamamlanmış" (tüm dallar ve tüm tarihler mevcuttur) ve tüm dallar bir sunucuya bağlanmadan kontrol edilebilir.
Bence bu unutulmaması gereken bir başka özellik.
Bunu kutudan çıkan CVS ve SVN ile yapamazsınız, ancak Git, eskileri gibi merkezileştirilerek sorunsuzca kullanılabilir.
Bu yüzden değişikliklerimi yerine getirebilirim, belki de devam eden işleri bir araya getirip ezip geçebilirim, sonra da çalışmalarımı ana gelişim dalına alıp yeniden yüklerim.
Git'le birlikte gelen diğer özellikler:
- kriptografik işaret taahhütleri
- rebasing (yeniden sıralama ve squash taahhütleri; sadece mesajı değil, taahhütleri düzenle)
- Kiraz toplama
- tarihi ikiye bölmek
- yerel şubeler ve saklama değişiklikleri (Wikipedia'da "raf" olarak adlandırılır)
Ayrıca Wikipedia'daki bu üç tabloya bakınız - Sürüm kontrol yazılımının karşılaştırılması :
Böylece, belki de ademi merkeziyetçi tarz, insanların onu kullanmasını sağlayan tek özellik değildir .
- Neden insanlar pratikte Git için dağıtılmış bir iş akışı kullanmıyor?
Bitbucked, GitHub ve daha büyük bir projeye katkıda bulunan ya da daha büyük bir projeye ev sahipliği yapan herkes bunu yapacaktır. Sağlayıcılar "ana" depoyu korurlar, katkıda bulunan klonlar, taahhüt eder ve ardından bir çekme isteği gönderir.
Küçük projelerde veya ekiplerde bile şirketlerde, dağıtılmış bir iş akışı, ya modüller dış kaynak sağladıkları ve dıştan gelenlerin kutsal gelişim şubelerini değiştirmeden, değişikliklerini daha önce gözden geçirmeden değiştirmelerini istemedikleri bir seçenektir.
- Yetenek dağınık bir şekilde çalışmalı, modern versiyon kontrolü için bile önemlidir, ...
Her zaman olduğu gibi: gereksinimlere bağlıdır.
Herhangi bir nokta geçerliyse, merkezi olmayan bir VCS kullanın:
- Çevrimdışı olarak tarihi işlemek veya yönlendirmek (örneğin tatil sırasında dağ kabinindeki alt modülü bitirmek) istiyorum
- merkezi repolar sağlayın, ancak değişiklikleri gözden geçirmek için (örneğin, büyük projeler veya dağıtılmış ekipler için) "gerçek" veri havuzunu ayrı tutmak istiyorum
- merkezi repoya doğrudan erişimi önlerken (ikinciye benzer şekilde), tarihin ve şubelerin hepsinin zaman zaman (bir kopyasını) vermek istemek
- Bir şeyi uzaktan saklamaya gerek kalmadan veya özel bir veri havuzu kurmak zorunda kalmadan bir şeyleri sürümlendirmek istiyorum (özellikle Git ile bir
git init .
şeyi sürümlemeye hazır olacak kadar basit )
Biraz daha var ama dördü yetmeli.
... yoksa kulağa hoş geliyor mu?
Tabii kulağa hoş geliyor - yeni başlayanlar için.