GitHub (Sürüm Kontrolü) Nedir? Nasıl Kullanılır?

GitHub (Sürüm Kontrolü) Nedir? Nasıl Kullanılır?

GitHub (Sürüm Kontrolü) Nedir? Nasıl Kullanılır? sorusu dünyanın en büyük yazılım geliştirme platformundan haberdar olmak isteyenlerin sandığından daha önemli olabilir. Çünkü tüm popüler programlama dillerini destekleyen GitHub, kodlama alanındaki en kritik gelişmelerden biri olarak kabul edilmektedir.

Kodlamada yapılan değişikliklerin takip edilebileceği bir sistem sağlayan ve kodun iyileştirilmesini teşvik eden bir ortam sunmayı başaran GitHub’ı tanıtmadan önce Git ve versiyon kontrol sistemi hakkında bazı açıklamalar yapmak yerinde olacaktır.

Git Nedir? Sürüm Kontrolü (Version Control) Nedir? 

Git Nedir?

Git, 2005 yılında Linus Torvalds tarafından oluşturulan ücretsiz ve açık kaynaklı bir sürüm kontrol sistemidir.

Git, tüm ekip üyelerinin aynı belgeler ya da kaynak kodu üzerinde aynı anda ve birbirlerinin çalışmalarını geçersiz kılmadan işbirliği yapmasına olanak tanır.

Git, dosyalarınızda yaptığınız değişiklikleri izlemenizi, önceki versiyonlarına dönmenizi, dosyalarınızın kopyasını oluşturmanızı, kopyada değişiklikler yapıp bu değişiklikleri orijinal kopyayla birleştirmenizi sağlar. Ayrıca, bir projenin kaynak kodundaki değişikliklerin geçmişini izleyerek kimin neyi ne zaman değiştirdiği bilgisini elde etmenize de olanak tanır.

Git, hem programcılar hem de teknik becerisi olmayanlar tarafından kullanılabilir, her boyutta kaynak kod dosyasını işleyebilir. Hatta metin dosyaları ve görseller için de kullanılabilir. Git’i Github olmadan kullanmak mümkündür, ancak GitHub’ı Git olmadan kullanamazsınız.

Stack Overflow 2021 verierine göre, geliştiricilerin %93’ünden fazlası Git kullanmaktadır. Git, değişiklikleri diğer bilgisayarlardaki kurulumlara “itmenizi” ve diğer bilgisayarlardaki kurulumlardan “çekmenizi” sağlar. Bu, birden fazla geliştiricinin aynı proje üzerinde çalışmasına olanak tanır.

Diğer sürüm kontrol sistemlerinin aksine git, her dosyada yapılan değişikliklerin bir listesi yerine kaydedilen her sürümü bir “anlık görüntü” olarak saklar. Gerektiğinde eski anlık görüntülere başvurabilirsiniz ve projeniz değiştirildiğinde yeni anlık görüntüler oluşturabilirsiniz.

Git, bir proje üzerinde çalışırken beğenmediğiniz detayları kötüye gidebileceği endişesiyle değiştirmekten çekinmenizi önler. Değiştirmek istediğiniz bileşene ait dosyanın bir kopyasını oluşturup düzenlemelerinizden memnun kalırsanız, kopyayı orijinal dosyayla birleştirebilirsiniz.

Git’in en önemli artılarından biri, ekip üyeleri arasındaki iş akışını koordine etme ve zaman içindeki ilerlemeleri izleme konusunda işlevsellik sunmasıdır. Git üzerinde çalışan birden fazla kullanıcının, birbirlerinin çalışmalarını kesintiye uğratmadan birlikte çalışması, hıza bağımlı günümüz dünyasında bu tür platformların popüler olmasını kolaylaştırmaktadır.

Git’i kullanmak için resmi web sitesinde en son sürümünü indirebilirsiniz. Git’i komut satırını kullanarak da yükleyebilirsiniz, ancak komutların her işletim sistemine göre değişiklik göstermesi sorun olabilir.

Sürüm Kontrolü (Version Control) Nedir? 

Sürüm kontrolü ya da versiyon kontrolü belirli sürümleri daha sonra geri çağırabilmeniz için bir dosyada veya dosya kümesinde zaman içinde yapılan değişiklikleri kaydeden sisteme denir.

Aynı anda birbirlerinin dosyaları üzerinde çalışan geliştiriciler, başka birinin çalışmasının üzerine yazmak üzere olduklarında Git’in sürüm kontrol sistemi tarafından uyarılır.

Bir projenin çeşitli aşamalarında farklı dosyaların veya ‘sürümlerin’ kaydedilme sürecini ifade eden sürüm kontrolü; geliştiricilerin yapılanları takip etmelerini ve yaptıkları bazı değişiklikleri geri almak istediklerinde önceki aşamaya dönmelerini sağlar. Ayrıca geliştirme sırasında oluşabilecek hataların giderilmesine, nelerin tamamlandığı, nelerin yapılması gerektiği konusunda bilgi almaya yardımcı olur.

GitHub Nedir?

GitHub nedir? GitHub Ne İşe Yarar?
Github; Git kullanarak kod depolamamızı sağlayan, proje ve ekip yönetimi özelliklerinin yanı sıra sosyal kodlama için de fırsatlar içeren bulut tabanlı bir platformdur.

GitHub, 73 milyondan fazla geliştiriciye, 4 milyondan fazla kuruluşa ve projelerin depolandığı 200 milyondan fazla dizine (repository) ev sahipliği yapan dünyanın en büyük kaynak kod barındırıcısıdır.

Github, sürüm kontrolü ve işbirliği için Git’i kullanmayı çok daha kolay hale getiren, geliştiricilerin kodlarını depolamasına, yönetmesine, kodlarındaki değişiklikleri izlemesine ve yazılım oluşturmasına yardımcı olan bulut tabanlı bir geliştirme platformudur.

Projenizi GitHub’da barındırıyorsanız, erişiminiz olan herhangi bir bilgisayardaki bir projeye erişebilir ve onu indirebilirsiniz. Ardından değişikliklerinizi yapabilir ve bu son sürümü geri yükleyebilirsiniz.

Ücretsiz olması ve kod deposu olarak kullanılması, GitHub’ı özellikle açık kaynaklı projeler için popüler kılmıştır. Merkezi Kaliforniya’da bulunan GitHub, 2018’de 7,5 milyar dolara Microsoft tarafından satın alınmıştır. Kuruluşların ekiplerini ve güvenliği yönetmesini kolaylaştıran iş odaklı planlar satarak gelir elde eden GitHub, kâr amacı gütmeyen bir şirkettir.

GitHub Ne İşe Yarar?

GitHub, proje yöneticilerinin ve geliştiricilerin çalışmalarını koordine etmek, izlemek ve güncellemek için bir araya geldiği bir platformdur. Birden çok geliştiricinin tek bir proje üzerinde çalışabilmesini ve birbirlerinin düzenlemelerini gerçek zamanlı olarak görebilmesini sağlar.

GitHub, geliştiricilerin dosyalarını bir ‘Git Deposu’nda barındırmasına olanak tanır, böylece diğer insanlar projeler üzerinde işbirliği yapabilir.

GitHub, diğer araçların gözden kaçırma eğiliminde olduğu koda yönelik güvenlik açıklarını belirlemek ve analiz etmek için özel araçlar kullanır.

GitHub’ın, profilinizdeki projeleri paylaşmanıza olanak tanıması ve katkıda bulunduğunuz tüm projelerin zaman çizelgesini tutması özellikle özgeçmişlerini oluşturmaya çalışan yeni geliştiriciler için işlevseldir.

GitHub Ne İşe Yarar?

GitHub kullanıcı dostu olmasıyla o kadar ünlüdür ki kitap yazmak gibi başka proje türlerini yönetmek için de kullanılmaktadır.

GitHub’ın sadece bir geliştirici aracı olarak algılanması en büyük yanılgılardan biridir: GitHub, aynı zamanda büyük bir sosyal platformdur. Depoları herkese açık olduğundan dünyanın dört bir yanındaki geliştiricilerin, “social coding” olarak bilinen işlevi yürütmesini sağlar, çünkü GitHub’la geliştiriciler etkileşime girerek birbirlerinin kodunu geliştirmek için katkıda bulunabilir. GitHub’da milyonlarca havuz vardır. GitHub topluluğu, beğendiği havuzları “favori” hale getirebilir, bunlar hakkında yorum yapabilir, güncellemeler için farklı yazarları ve havuzları izleyebilir, bunlara abone olabilir, başka birinin içeriğinin bir kopyasını oluşturabilir.

GitHub Kullanmadan Önce Bilmeniz Gereken Terimler

GitHub terminolojisi, GitHub sözlüğü, GitHub Kullanmadan Önce Bilmeniz Gereken Terimler
GitHub olmadan Git’i kullanmak teknik bilgi ve komut satırı kullanımını gerektirir.

GitHub’ın terminolojisi hakkında bilgi sahibi olmak yeni başlayanların platformun zenginliğinden hızlıca yararlanmasını kolaylaştırır. Başlangıçta kavramanız gereken çok fazla bileşen olduğunu düşünüp cesaretinizi kırmanız gereksizdir, pratik yaptıkça GitHub terimleri daha net anlaşılacaktır.

Repository

Repository bir projenin klasörüdür, tıpkı Google Drive klasöründe göreceğiniz türden bir klasöre benzer. GitHub’ın en temel öğesi olan bu bileşen, belgeleri ve her belgenin revizyon geçmişini saklar. Birden çok özel veya genel ortak çalışanı kabul edebilir.

Commit

Bir dosyada veya bir dizi dosyada yapılan bireysel değişiklik anlamına gelir. Güncellenmiş bir dosyayı orijinal klasörüne kaydetmek ve eski bir sürümün üzerine yazmak gibi düşünülebilir.

Clone

Bir geliştiricinin bilgisayarında bulunan bir havuzun tam kopyalarına denir. Klonlar bir kod dosyasını çevrimdışı kurcalamaya, tercih edilen bir kod düzenleyicide ya da entegre geliştirme ortamında düzenlemeye yarar.

Branch

Ana veri havuzunun geçici bir alt klasör gibi dallara ayrılmasıdır. Repository’nin içinde bulunur, ancak birincil, ana dalı etkilemez ve canlı sürümü bozmadan özgürce çalışmanıza izin verir. Değişikliklerinizi yayınlamaya hazır olduğunuzda ana dalda birleştirebilmeniz en önemli artılardan biridir.

Fetch

GitHub.com gibi çevrimiçi bir depodan en son değişiklikleri, “birleştirmeden” almak anlamına gelir. Bu değişiklikleri aldığınızda, yerel makinenizde bulunan kodla karşılaştırabilirsiniz.

Fork

GitHub’da diğer geliştiricilerin koduyla etkileşim söz konusu olduğunda gerçekleştirilebilen üç temel işlemden biridir. Başka bir kullanıcının deposunun kopyası olarak tanımlanabilir. Orijinal halini etkilemeden bir projede özgürce değişiklik yapmanıza olanak tanır ve diğer insanların çalışmaları üzerinde denemeler yapma ve öğrenme fırsatları sunar.

Pull

Başka birinin kodunda değişiklik yapmayı tamamladığınızda, bunları asıl sahibiyle paylaşabilme özelliğidir. Bir projede orijinale bağlı kalıp güncel kod temeli üzerinde çalışmanız kadar orijinalin yazarına değişikliklerinizi güncellemesi için istek göndermeniz de mümkündür.

Push

İletme olarak adlandırılabilir çünkü, gerçekleştirdiğiniz değişiklikleri diğerlerinin bunlara erişebilmesi için GitHub.com gibi uzak bir havuza göndermeyi ifade eder.

Issue

Havuzla ilgili önerilen iyileştirmeler, görevler veya sorulardır. Genel veri havuzları için herkes tarafından oluşturulabilir ve ortak çalışanlar tarafından yönetilir.

Blame

Bir dosyanın her satırında yapılan son değişikliği açıklama özelliğidir, revizyonu, yazarı ve zamanı gösterir. Bir özelliğin ne zaman eklendiğini veya hangi işlemin belirli bir hataya yol açtığını takip etmede yardımcıdır.

Merge

Değişiklikleri bir daldan alıp diğerine uygulama yani birleştirme özelliğidir. Çakışan herhangi bir değişiklik yoksa GitHub.com web arayüzü veya komut satırı aracılığıyla otomatik olarak yapılabilir.

GitHub Nasıl Kullanılır?

GitHub Nasıl Kullanılır?
GitHub topluluğu, beğendiği havuzları (repository) “favori” hale getirebilir, bunlar hakkında yorum yapabilir, güncellemeler için farklı yazarları ve havuzları izleyebilir, bunlara abone olabilir, başka birinin içeriğinin bir kopyasını oluşturabilir.

GitHub’ı kullanabilmek için önce bilgisayarınıza Git indirin ve GitHub hesap oluşturma sayfasından kullanıcı kaydınızı tamamlayın.

Git ile yerel olarak çalışmak istiyor ancak komut satırını kullanmak istemiyorsanız, bunun yerine GitHub Desktop‘ ı yükleyebilirsiniz.

Git’ten bir GitHub deposuna (repository) bağlandığınızda, HTTPS veya SSH kullanarak GitHub ile kimlik doğrulaması yapmanız gerekir (HTTPS üzerinden bağlanmanız önerilir, SSH ile klonlarsanız, her bilgisayarda SSH anahtarları oluşturmanız gerekir). HTTP veya SSH için GitHub CLI kullanarak GitHub’da kimlik doğrulaması yapabilirsiniz.

GitHub Nasıl Kullanılır?

Dosyalarla yerel olarak çalışmanız gerekmiyorsa projelerinizin dosyalarının depolanacağı bir dizini (repository) oluşturmak gibi Git ile ilgili birçok eylemi doğrudan GitHub hesabınızdan yürütebilirsiniz.

Git ve GitHub’ı kullanırken ilk adım kodunuzu yedeklemeyi ve dünya çapında paylaşmanızı kolaylaştıran repository oluşturma işlemidir. Dilediğiniz zaman diğer kullanıcılara ait repository’leri takip ederek kişiler ve kuruluşlarla etkileşime girmeyi de deneyebililirsiniz.

Github’da denetleme araçlarını kullanarak ekibinizin koda odaklanmasına yardımcı olabilirsiniz. Proje organizasyonu için kişilere veya gruplara görevler atayabilir, ortak çalışanlar için izinleri ayarlayabilir ve yorum denetlemeyi kullanabilirsiniz.

GitHub’la ilgili yardım istemeniz gerekirse Github Community ile çözümler bulup fikirlerinizi paylaşabilir, güncel tartışmaları takip edebilirsiniz.

Özet

Açık kaynaklı bir sürüm kontrol aracı olan Git, 2005 yılında Linux işletim sistemi üzerinde çalışan geliştiriciler tarafından oluşturulan, projelerin anlık görüntülerini kaydetmeyi sağlayan yerel bir VCS yazılımıdır. Github ise Git kullanarak kod depolamamızı sağlayan, proje ve ekip yönetimi özelliklerinin yanı sıra ağ oluşturma ve sosyal kodlama için de fırsatlar içeren bulut tabanlı bir platformdur.

Github, hem kişisel hem ticari kullanım için diğer kodlayıcılarla veri paylaşmanın ötesinde avantajlarla doludur. Bu nedenle GitHub (Sürüm Kontrolü) Nedir? Nasıl Kullanılır? sorusunun yanıtlarında geliştiricilerin birlikte çalışabilecekleri bir kod paylaşımı kaynağından çok daha fazlasını bulmak mümkündür.