Basitçe söylemek gerekirse, GitHub insanların çeşitli belgeler üzerinde işbirliği yapabilecekleri bir “merkez” dir. GitHub, Word belgelerinden Excel e-tablolarına kadar her şeyle birlikte çalışsa da, en çok kod üzerinde işbirliği yapmak isteyen geliştiriciler tarafından kullanılır. GitHub, geliştiricilerin özel olarak programlama projeleri için uyarlanmış bir sürüm kontrol sistemi (VCS) olan Git'e erişmesini sağlar. Git'i ve GitHub'un işbirlikçi programlamada nasıl devrim yaptığını açıklamak için biraz zaman ayırdık.
Git nedir?
Google Dokümanlar’ın öncesindeki günlerde lise grup raporlarında ortak çalışmayı unutmayın. Raporu e-postayla göndererek herkesin katkılarını aldığından emin olursunuz. Bazen katkılarınız için düzenlemeler yapar ve güncellenmiş bir kopyanın etrafına e-posta gönderirsiniz. Çok geçmeden önce, her biri son düzenlemelerin hepsini değil, hepsini içeren yaklaşık üç ila beş kopya vardı. Sonunda, biriniz mağara ve tüm sürümleri tek bir güncel belgeye indirmenin başındaki görevi üstlenecek.
Sonunda, Google Dokümanları binlerce kez daha kolay belgeler üzerinde işbirliği yaparak, hepinizin aynı belgede ve izleme güncellemelerinde tek bir sistemde çalışmasını sağlar. Git gibi Googledocs bir sürüm kontrol sistemidir. Güncellemeleri izlemek ve birleştirmek, tek bir projede birlikte çalışmayı kolaylaştırmak için tasarlanmıştır.
Git, Linux'un yaratıcısı olan Linus Trovalds tarafından yaratılan bir VCS'dir, bu yüzden geliştirici dostu olacağının farkındasınızdır. Aslında, diğer dosya türleri pahasına geliştirici dostu. Googledocs veya GitHub'un programlama sektöründeki öncülleri gibi gerçek zamanlı güncellemelere izin vermek yerine, kullanıcıların projenin tam sürümünü indirmelerini ve yerel olarak düzenlemelerini gerektirir. Daha sonra güncellemelerini yüklerler. Sonuç olarak, sistemde takip edilen çok sayıda “güncellenmiş” belge bulunmaktadır.
PowerPoint veya Word üzerinde işbirliği yapmak istiyorsanız bu göz korkutucu gelmelidir. Ancak programcılar için idealdir. Sonuçta, aynı belgede çok fazla kod düzenleme kodu, kodun bütünlüğüne önemli ölçüde zarar verebilir. Dahası, tek bir yerde değişiklikler başka bir parçanın nasıl kodlandığını etkileyebilir. Bireysel geliştiriciler, meslektaşlarının neler yaptığını bilmiyorlarsa, bu durum kod için karışıklık ve potansiyel felaket anlamına gelebilir.
Bunun yerine, her geliştirici projenin mevcut ana sürümünün “boş tuvali” ile çalışacaktır. Değişen sürümleri “aşamalandırma ortamı” na yüklüyorlar. Bu değişikliklerden son ürüne “taahhüt” edilebilir. Değişiklikler yapıldıktan sonra, gelecekteki değişiklikler için indirilecek ana kodun bir parçasıdır. Bu şekilde Git, değişiklikleri görüntülemeyi, kabul etmeyi, reddetmeyi ve geri döndürmeyi, hassas kodun felaketten korunmasını kolaylaştırır.
GitHub Özellikleri
GitHub, Git VCS formatı ile çalışmak için bir “hub” dır. Geliştiricilerin hayatlarını kolaylaştırmak için çeşitli özelliklerle birlikte gelir.
- Deposu - Genellikle “repo” olarak adlandırılır, bu, bir projenin güncellenmiş sürümlerinin (ve birincil sürümünün) depolandığı yerdir. Bu proje için sizin evreleme alanınız. Her bir repo, kolay erişim için benzersiz bir URL'ye sahiptir.
- Forking - Geliştiriciler özel bir depo için ödeme yapmadıkça, projeleri GitHub topluluğunun diğer üyeleri tarafından görülebilir. Eğer bu üyeler değerli bir katkı sağlayabileceklerini düşünürlerse, sizinkinden yeni bir proje (depo) yaratabilirler. Buna “repo almayı” denir.
- Çekme İsteği - Bir repo almayı ve mevcut kodda yeni değişiklikler yaptıktan sonra, GitHub kullanıcıları değişiklikleri görüntülemek için orijinal depo geliştiricilerini davet edebilir.
- Birleştirme - Birisi deponuzu iptal ettikten sonra yapılan değişiklikleri beğenirseniz, bu değişiklikleri kabul etmeyi seçebilir ve bunları mevcut deponuzla birleştirebilirsiniz.
- Changelogs - Bu, tek bir proje üzerinde çalışan geliştiricilerin tüm değişiklikleri, bunları kimin yaptığını ve ne zaman olduğunu görmelerini sağlar.
- Ağ kurma - GitHub, geliştiricilerin görülmesini kolaylaştırır. Her kullanıcı, üzerinde çalıştıkları projeleri ve yaptıkları herşeyi gösteren bir profil olarak. Bir çekme isteği gönderdiğinizde, gönderdiğiniz geliştiriciler profilinizi görüntüleyebilir. Bu onlara uzmanlığınız hakkında biraz bilgi verir ve değişiklikleri birleştirip birleştirmediklerini bildirebilir.
Programlamanın Geleceği
Forking, yaygın olarak GitHub'un amiral gemisi olarak kabul edilir. Programcıların fark edilmelerini kolaylaştırarak, oyun alanını düzleştiriyorlar. Dahası, platformun sosyal ve işbirlikçi doğası, küçük projelerin fark edilmesini ve yapılmasını kolaylaştırır.