GitHub, her zaman merak uyandırdığını duyduğumuz bir web sitesi ve hizmettir, ancak çoğu insan gerçekten ne yaptığını anlamıyor. GitHub ‘un ne hakkında olduğunu bilmek ister misiniz ? GitHub nedir ve hakkında daha fazla bilgi öğrenmek için okumaya devam ediniz.
GitHub’daki “Git”
GitHub’u anlamak için önce Git’i anlamanız gerekir. Git, Linux’u yaratan aynı kişi olan Linus Trovalds tarafından başlatılan açık kaynaklı bir sürüm kontrol sistemidir. Git, diğer sürüm kontrol sistemlerine (Subversion, CVS ve Mercurial) benzer.
Git, bir sürüm kontrol sistemidir, fakat bu ne anlama gelmektedir ? Geliştiriciler bir şey yarattığında (örneğin bir uygulama), kodda sürekli değişiklikler yaparlar ve ilk resmi (beta olmayan) sürümüne kadar ve sonrasında yeni sürümler yayınlarlar.
Versiyon kontrol sistemleri bu revizyonları düz bir şekilde saklar, modifikasyonları merkezi bir depoda saklar. Bu, geliştiricilerin yazılımın yeni bir sürümünü indirebildikleri, değişiklikler yapabildikleri ve en yeni revizyonu yükleyebildikleri için kolayca işbirliği yapabilmelerini sağlar. Her geliştirici bu yeni değişiklikleri görebilir, indirebilir ve katkıda bulunabilir.
Benzer şekilde, bir projenin gelişimi ile ilgisi olmayan insanlar dosyaları indirip kullanabilirler. Çoğu Linux kullanıcısı bu sürece aşina olmalıdır, çünkü Git, Subversion veya benzer başka bir yöntem, gerekli dosyaları indirmek için oldukça yaygındır; özellikle bir programın kaynak kodundan derlenmesi için hazırlanmada (Linux meraklıları için oldukça yaygın bir uygulama). Git, çoğu geliştiricinin tercih edilen sürüm kontrol sistemidir, çünkü mevcut diğer sistemlere göre birden fazla avantajı vardır. Dosya değişikliklerini daha verimli depolar ve dosya bütünlüğünü daha iyi sağlar.
GitHub’daki “Hub”
Git’in bir sürüm kontrol sistemi olduğunu, benzer ancak mevcut olan birçok alternatiften daha iyi olduğunu belirledik. Peki, GitHub’u bu kadar özel yapan nedir? Git bir komut satırı aracıdır, ancak Git’i kapsayan her şeyin etrafında olduğu merkez, geliştiricilerin projelerini ve ağlarını benzer fikirli insanlarla depoladıkları merkezdir (GitHub.com).
GitHub Ne İşe Yarar ?
Repository : Bir depo (genellikle “repo” olarak kısaltılır), belirli bir proje için tüm dosyaların saklandığı bir yerdir. Her projenin kendi repo’su vardır ve buna benzersiz bir URL ile erişebilirsiniz.
Forking a Repo : “Forking”, zaten var olan başka bir projeye dayalı yeni bir proje oluşturduğunuz zamandır. Bu, programların ve diğer projelerin daha da gelişmesini büyük ölçüde teşvik eden şaşırtıcı bir özelliktir. GitHub’da katkıda bulunmak istediğiniz bir proje bulursanız, repo’yu çatabilir, istediğiniz değişiklikleri yapabilir ve yeni bir repo olarak revize edilmiş projeyi yayınlayabilirsiniz. Yeni projenizi oluşturmak için oluşturduğunuz orijinal depo güncellenirse, o güncellemeleri mevcut çatalınıza kolayca ekleyebilirsiniz.
Pull Requests : Bir depoyu çıkardınız, projeye büyük bir revizyon yaptınız ve orjinal geliştiriciler tarafından tanınmasını istiyorsunuz – hatta resmi projede / depoda bile yer alsın. Bir çekme isteği oluşturarak bunu yapabilirsiniz. Orijinal havuzun yazarları çalışmanızı görebilir ve ardından resmi projeye kabul edip etmeyeceğinizi seçebilir. Bir çekme isteği gönderdiğinizde, GitHub sizin ve ana projenin iletişim kurucusunun sizin için mükemmel bir ortam sağlar.
Social Networking : GitHub’un sosyal ağ yönü, muhtemelen en güçlü özelliğidir ve projelerin teklif edilen diğer özelliklerden daha fazlasını büyütmesine izin verir. GitHub’daki her kullanıcının kendi özgeçmişi vardır; bu, geçmiş çalışmalarınızı ve çekme projelerinden diğer projelere katkıları gösteren bir özgeçmiş gibi davranır.
Proje revizyonları kamuoyuna tartışılabilir, bu nedenle bir uzman kitlesi bilgiye katkıda bulunabilir ve projeyi ilerletmek için işbirliği yapabilir. GitHub’un gelişinden önce, bir projeye katkıda bulunmakla ilgilenen geliştiricilerin genellikle yazarlarla iletişim kurmanın bazı yollarını (muhtemelen e-postayla) bulmaları ve daha sonra kendilerine güvenebilecekleri ve katkılarının yasal olduğu konusunda ikna etmeleri gerekecektir.
Changelogs : Birden fazla kişi bir projede işbirliği yaptığında, revizyonları takip etmek zordur; bu, dosyaların ne zaman, ne zaman ve nerede depolandığını değiştirir. GitHub, depoya itilmiş tüm değişiklikleri takip ederek bu problemi halleder.