GitHub, milyonlarca geliştirici tarafından proje geliştirmek, iş başvuruları için portfolyo oluşturmak ve proje depolamak için kullanılan bir platformdur. Günümüzde birçok geliştirici ortak projeler üretmek ve ekip oluşturmak için çeşitli platformlar kullanıyor. GitHub, bütün bu platformlar arasında şüphesiz en çok tercih edilendir.
GitHub Nedir?
GitHub, bir geliştirici topluluğudur. Dünyanın her yerinden kullanıcılara sahiptir. Geliştiriciler GitHub’ı bulundukları coğrafi konuma bağlı kalmadan ortak projeler geliştirmek için kullanabileceği gibi, kişisel projelerini depolamak için de kullanabilir. GitHub’da projeler kopyalanabilir ve ana projeyi değiştirmeden proje üzerinde çalışma imkanı vardır. Böylelikle birden fazla düzenleme ve ekip çalışması gerektiren işlerde karışıklık olmaksızın sürüm güncellemesi, hata giderme ve yeni özellik ekleme gibi birçok işlem kolaylıkla yapılabilir.
Ekip projeleri geliştirme ve proje depolama özelliklerinin yanı sıra GitHub aynı zamanda çok amaçlı bir geliştirici platformudur. GitHub’da projeler herkese açık ya da kapalı şekilde oluşturulabilir. Bu sayede GitHub’ı ürünlerinizi tanıtmak, iş başvurusunda bulunurken portfolyonuza prototipler eklemek ve diğer geliştiricilerden yardım almak gibi birçok amaçla kullanabilirsiniz. GitHub web tabanlı bir platformdur. Aynı zamanda Windows ve MacOS için bir masaüstü uygulaması da mevcuttur.
GitHub’u oluşturan Git ve Hub nedir sorusuna ayrı alt başlıklar ile cevap verelim.
Git Nedir?
Git, 2005 yılında başlatılan bir açık kaynak kodlu bir VCS’dir. VCS, “Versiyon Kontrol Sistemi” anlamına gelir. Birçok geliştirici tarafından kullanılan Git, bir projenin kopyalarının oluşturulmasına imkan tanır. İster bütün bir projeyi kopyalayarak, isterseniz de üzerinde çalışılacak kısmı yalıtarak sürüm güncelleme, hata giderme veya geliştirme işlemlerini yapabilirsiniz.
Git, merkezi sürüm kontrol sistemlerinden farklıdır. Bir projenin dallarını oluşturmaya yarar ve bu dallara “Feature Branches” (Özellik Dalları) adı verilir. Bu özellik dalları sayesinde yazılım mühendisi ve geliştiriciler ana projede değişiklik yapmadan düzenlemeler yapabilir ve isterlerse yaptıkları değişiklikleri hızlı bir şekilde ana projeye entegre edebilirler.
Kısacası Git, GitHub’ın geliştirme işlemlerinin temelidir. Git’i kullanmak için birtakım kodlara hakim olmak gerekir. Bu kodları ve GitHub’ın nasıl kullanıldığını aşağıda “GitHub nasıl kullanılır” bölümünde açıkladık.
Hub Nedir?
Hub sözcüğü merkez, toplanılan yer yada kesişim noktası gibi anlamlarda kullanılabilir. GitHub’ın bir “geliştirme merkezi” olduğunu söylemek mümkündür. Bu merkezde geliştiriciler sosyal etkileşim halindedir. Ekip çalışması etkileşim gerektirir ve Hub kısmı bu işlevi yerine getirir. GitHub’ı “geliştirme” ve “sosyalleşme” olarak iki başlığa bölersek sosyalleşe tarafını Hub oluşturur.
Kısacası, GitHub’ı aynı zamanda sosyal bir platform yapan işin Hub kısmıdır. Geliştiriciler burada ekip olarak çalışırken aynı zamanda diğer projeleri takip edebilir, yeni bağlantılar kurabilir ve sosyalleşebilirler.
GitHub ne işe yarar?
Yukarıda GitHub’ın hangi amaçlar ile kullanıldığından kısaca bahsettik. GitHub, geliştiriciler için bireysel olarak kullanılabileceği gibi yazılım şirketleri tarafından da bir iş takip platformu olarak sıkça kullanılıyor. Bu sebeple, konuyu daha detaylı bir şekilde ele almak için üç başlık altında “GitHub ne işe yarar” sorusunu cevaplayacağız
Bireysel geliştiriciler için GitHub ne işe yarar?
Temel olarak GitHub’ın amacı geliştiriciler arasındaki iletişimi ve kip çalışmasını kolaylaştırmak olsa da bireysel amaçlarla da kullanılabilir. Bireysel olarak bir geliştirici GitHub’ı şu amaçlar ile kullanabilir:
- Projeleri depolamak
- Dünyanın her yerinden geliştiricileri takip etmek, bağlantı kurmak
- Yeni fikirler edinmek
- Ürünlerinin tanıtımını yapmak
- İş başvuruları için portfolyo oluşturmak
- Prototip geliştirmek
GitHub aynı zamanda bir depolama aracıdır ve projeleri bulut sisteminde saklamayı sağlar. Birçok geliştiricinin bulunması sebebi ile iyi bir networking (ağ oluşturma, bağlantı kurma) platformudur. Platform sayesinde tecrübeli geliştiricilere ulaşmak, danışmak ve yeni fikirler edinmek oldukça kolaydır. GitHub kullanmak özellikle oyun sektörü kariyeriniz için size avantajlar sağlayabilir.
Diğer yandan projelerinizi tanıtmak için GitHub eşsiz bir platformdur. Geliştirici şirketler sık sık GitHub’da araştırmalar yapar. Bu şirketlerin dikkatini çekmek, iş başvurularında kullanmak ya da bağımsız olarak ürünlerinizi pazarlamak için de GitHub’ı kullanabilirsiniz. İsterseniz, ilgilenen geliştirici şirketlere özel olarak da GitHub’daki projelerinizi gösterebilirsiniz. Elbette, GitHub’ın kullanım amacı bununla sınırlı değildir. İhtiyaçlarınıza göre GitHub’da yararlı daha birçok şey bulabilirsiniz. Bu fırsatlar aynı zamanda geliştirici ekipler için de geçerlidir. Fakat ekipler için GitHub bazı ek amaçlarla da kullanılabilir.
Geliştirici ekipler için GitHub ne işe yarar?
GitHub en çok geliştirici ekiplere yönelik çözümler sunar. Günümüzde yazılım geliştirme, mekandan bağımsız bir iştir. Bunun böyle olmasında da bizzat GitHub’ın kendisinin rolü büyüktür. Bireysel olarak GitHub’ın sunduğu bütün fırsatlar dahil olmak üzere, geliştirici ekipler için GitHub şu amaçlar ile kullanılabilir:
- Ortak projeler geliştirmek
- Paralel ve eş zamanlı çalışma ortamı oluşturmak
- Daha hızlı proje geliştirmek
- Daha kolay sürüm güncellemesi yapmak
- Ekip üyelerinin çalışmalarının çakışmasını ve karışmasını önlemek
- Yatırım almak için şirketlerin dikkatini çekmek
Bir ekip olarak çalışmanın bütün gerekliliklerini GitHub karşılayabilir. Bunun yanı sıra birçok ek avantaj sağlayarak, projelerin sorunsuz bir şekilde geliştirilmesini sağlar. Ekip üyelerinin her biri diğerlerinin işini olumsuz etkilemeden fikirlerini projeye yansıtmaya çalışabilir. Bu sebeple alternatif yollar ve yeni sürümler çok daha rahat geliştirilebilir. Aynı zamanda projelerin büyük şirketler tarafından fark edilmesi ve incelenmesi kolaylaşmış olur.
Geliştirici şirketler için GitHub ne işe yarar?
Geliştirici şirketler de GitHub’ı sık sık kullanmaktadır. Söz konusu şirketler olduğunda GitHub’ın kullanım amacı oldukça çeşitlilik gösterse de en muhtemel seçenekleri öngörmek mümkündür. Geliştirici şirketler GitHub’ı şu amaçlar ile kullanabilir:
- İş yönetimini yapmak
- Farklı geliştirici ekiplerin ürünlerini takip etmek
- Yeni yetenekleri keşfetmek
- Fikir alışverişlerinde bulunmak
- Pazarlama
GitHub ekip çalışmasının takibi için detaylı bir dosya tutar. Bu sayede geliştirici şirketler, ekiplerin hangi zamanda ne üzerinde çalıştığını takip edebilir. Farklı ürünleri takip ederek yeni fikirler edinebilirler. İhtiyacı olan şirketler yetenek avına çıkabilir. Aynı zamdan iş başvurularını kabul değerlendirirken, başvuran kişinin GitHub’da bir prototipinin bulunması şirketlerin önem verdiği bir konudur. Böylelikle hem başvuran kişinin yeteneğini test etmiş olurlar hem de iş başvurusunu değerlendirmek daha kolay bir hal alır. Bazı şirketler de birtakım amaçlar ile özellikle ücretsiz yazılımların pazarlamasını veya tanıtımını açık veya kapalı olarak GitHub’da yapmayı tercih edebiliyorlar.
GitHub nasıl kullanılır?
GitHub’ı kullanmak için öncelikle platforma üye olmanız gerekiyor. Aşağıda, GitHub hesap açma işlemi ile başlayıp adım adım GitHub’ın nasıl kullanılacağını anlatacağız. Dilerseniz Mobidictum Academy YouTube kanalımızdaki videoya da göz atabilirsiniz.
GitHub hesap oluşturma
GitHub ana sayfasına giderek “kayıt ol” kısmına geçerli bir email adresi girerek hesap oluşturmaya başlayabilirsiniz. GitHub üyelik işlemleriniz için sizi yönlendirecek. Temel üyelik işlemini tamamladıktan sonra daha doğru içeriklere erişebilmeniz için GitHub size kullanım amacı, ilgi alanları gibi sorular soracaktır. Adımları tamamlayarak ilerlediğinizde hesap açma işlemini tamamlamış olacaksınız.
Hesap açtıktan sonra GitHub size üyelik planınızı soracaktır. İsterseniz GitHub’ı ücretsiz olarak kullanabilirsiniz. Tam verim almak için ise GitHub’ın sunduğu ücretli planları tercih edebilirsiniz.
GitHub’ı ücretsiz bir planının yanı sıra daha geniş özelliklere erişebileceğiniz planları da bulunuyor. İhtiyaçlarınıza göre istediğiniz versiyonu seçebilirsiniz.
GitHub deposu (repository) oluşturma
Repository, GitHub’da sıkça kullanacağınız bir nevi depodur. Tek bir dosya yada kod içerebileceği gibi bir koleksiyon halinde de olabilir. Oluşturduğunuz depoda projelerinizi kiminle paylaşacağınızı ayarlayabilirsiniz. Repo’ları ister yerel olarak, isterseniz GitHub bulut sistemi ile depolayabilir ve istediğiniz tüm dosya formatlarını ya da kodları saklayabilirsiniz. GitHub’da repo oluşturmak ise oldukça kolay:
Sağ üst köşedeki (+) ikonuna altından “New repository” seçeneğini seçerek projeniz için bir depo oluşturabilirsiniz. “Owner” kısmında kullanıcı adınız görünecektir. Daha sonra reponuza isim ve açıklama ekleyin. Kırmızı oklar ile gösterilen bölümlerden projenizi kimlerin görebileceğiniz ayarlayabilirsiniz. İsterseniz herkese açık, isterseniz kısıtlı erişim ile reponuzu yaratabilirsiniz. Ayrıca isterseniz bir “README” dosyası ekleyerek repo’nuza dair açıklamalarda bulunabilirsiniz. Tüm bunları yaptıktan sonra tek yapmanız gereken “Create repository” tuşuna basmaktır.
GitHub Branch oluşturma
Yukarıda, GitHub üzerinden “Features Branch” (Özellik dalları) oluşturabileceğinizi söylemiştik. Branch’lar ana projeyi değiştirmeden değişiklik yapmanızı ve isterseniz bunları hızlıca entegre etmenizi sağlayan yalıtılmış alanlar oluşturur. Böylelikle hem bir ekip olarak aynı projede çalışabilir hem de herhangi bir soruna sebep olmadan kod denemeleri yapabilirsiniz. Branch özü itibari ile repo’ların bir kopyasıdır ve geliştiriciye genişlik tanır.
Oluşturduğunuz repository’e bir proje eklediğinizde karşınıza yukarıdaki gibi bir alan çıkar. Burada “Code” bölümünde “main” tuşuna tıklayarak, ana projenize bağlı dallar oluşturabilir ve bu dallar üzerinde bağımsız olarak çalışabilirsiniz. Siz değişiklikleri onaylayana kadar dallar üzerinde yaptığınız değişiklikler ana dosyayı etkilemez.
GitHub Pull Request oluşturma
Pull Request (Çekme İsteği), bir arada çalışan kişilerin yaptıklarını birbirlerine iletme yoludur. Kısaca bir branch oluşturup üzerinde değişiklikler yapıldıktan sonra pull request oluşturulur ve değişim ile ilgili bilgi verilir. Projede çalışan diğer geliştiriciler bu sayede yapılan değişiklikleri görebilir ve istenirse bu değişiklikler hızlı bir şekilde ana projeye eklenebilir. Pull request oluşturmak oldukça kolaydır.
Pull requests sekmesinden “New pull request”e tıklayarak yeni çekme isteği oluşturabilirsiniz. Pull request oluştururken yukarından önce ana projeyi ve üzerinde değişiklik yaptığınız branch’ı seçmeniz gerekecek. Bu konuda GitHub oldukça basit bir arayüze sahip ve kolaylıkla bu seçimi yapmanız gereken pencereyi görebilirsiniz. Buradan sonraki sayfada ise branch üzerinde yaptığınız değişiklikleri göreceksiniz ve bir mesaj kutusu açılacak. Gerekli bilgileri verdikten sonra “Create pull request” butonu ile oluşturma işlemini tamamlayabilirsiniz.
Git Kodları
Git, bir versiyon kontrol sistemidir demiştik. Yukarıda bahsettiğimiz üzere Git kullanırken birtakım kodları bilmeniz gerekir. Git kodları branch kontrolünde ve düzenlemesinde kullanılır. Projenizde ne kadar çok dal oluşturduysanız kontrolü o kadar zahmetli olacaktır. Bu konuda Git versiyon kontrol sistemi devreye girer. En temel Git Branch kodlarından bazılarını sizlerle paylaşalım:
Herhangi bir Git projesinde bütün branchleri görüntülemek için kod satırı:
git branch
Yeni bir branch oluşturmak için kod satırı:
git branch [branch_adi]
Oluşturulan branche geçiş yapmak için kod satırı:
git checkout [branch_adi]
Bir branch silmek için kod satırı:
git branch -d [branch_adi]
Var olan bir repo’yu kopyalayarak indirmek için kod satırı:
git clone <link>
Son Söz
Görüldüğü üzere GitHub geliştiricilere birçok imkan sunan eşsiz bir platformdur. GitHub’ı web üzerinden kullanabileceğiniz gibi masaüstü uygulamasını da indirebilirsiniz. Belirtmek gerekir ki GitHub, bir geliştirici platformu olduğu kadar aynı zamanda bir iş yönetim platformudur. Bu sebeple çok geniş bir kullanım alanı vardır. Özellikle geliştiricilere mutlaka GitHub’a bir göz atmalarını öneriyoruz. Şu anda GitHub’ı 70 milyondan fazla geliştirici kullanıyor ve bu sayı her geçen gün artıyor.