GitHub Nedir, Ne İşe Yarar ve Hangi Terimler Vardır?
Bu yazımda “GitHub nedir, nasıl çalışır ve bilinmesi gereken terimler nelerdir?” elimden geldiğince bu soruları yanıtlamaya çalışacağım.
GitHub Nedir?
Kabaca GitHub, bir kod depolama ve geliştirme platformudur. Platformun alametifarikası, geliştiricilerin kodlarını depolayarak ve bu kodlar üzerinde çalışarak, projelerini geliştirmelerine yardımcı olmasıdır. Zira bünyesinde yazılım barındıran çoğu proje haliyle pek çok kişinin bir araya gelip ekip olarak çalışabilmesiyle ortaya çıkmaktadır.
GitHub sayesinde geliştiriciler kodlarını birbirleriyle kolayca paylaşabilir, diğer geliştiricilerle işbirliği yapabilir veya halihazırda yürütülen bir projeye dahil olmak gibi pek çok şeyi yapabilmektedir. Bu sayede, geliştiriciler kodlarını daha verimli bir şekilde yönetebilir ve büyük projeleri daha hızlı bir şekilde tamamlayabilirler.
Peki GitHub tüm bunları nasıl yapabiliyor diye sorabilirsiniz. Aslında GitHub, bir sürüm kontrol sistemi olan Git’in bulunduğu bir platformdur.
Bu aşamada Git hakkında biraz daha detaylı bilgi versek doğru olacaktır; Git, dağıtık bir sürüm kontrol sistemidir. Bu sistem sayesinde, üzerinde çalıştığınız projelerin tarihçesini izleyebilir ve böylece proje üzerinde yapılmış değişiklikleri takip edebilirsiniz.
Yani bu demektir ki Git, bir kod deposu oluşturmanıza ve bu deposunuza çeşitli değişiklikler yapmanıza ve bunları kaydetmenize olanak sağlar. Bu sayede kodunuzu geliştirirken, eski sürümlerine dönüş yapabilir ve değişiklikleri kolaylıkla izleyebilirsiniz. Git, ayrıca çok sayıda kullanıcının aynı anda aynı projeyi geliştirmesine izin verir ve bu sayede kodunuzu verimli bir şekilde çalışarak daha da geliştirebilirsiniz.
GitHub Ne İşe Yarar?
GitHub, Git adı verilen sürüm kontrol sistemini kullanarak, kullanıcıların kodlarını ve diğer proje dosyalarını birbirleriyle paylaşmasına, bu dosyalar üzerinde iş birliği yapmasına ve bu dosyalarda yapılmış değişiklikleri inceleyebileceğiniz geçmişlerin görüntülemesine olanak sağlar.
GitHub, Git depolarının barındırıldığı bir web tabanlı hizmet olduğundan kodlarınızı internet üzerinden saklayabilir ve istediğiniz her yerden erişebilirsiniz.
GitHub ayrıca kod paylaşımı, bakım ve geliştirme işlemlerini de kolaylaştıran bir araçtır. Örneğin, GitHub sayesinde diğer geliştiricilerle kolaylıkla işbirliği yapabilir ve onların yaptığı değişiklikleri görebilirsiniz. Ayrıca GitHub, projeleriniz için özelleştirilmiş bir ana sayfa oluşturmanıza da olanak sağlar ve bu sayede projeleriniz hakkında daha fazla bilgiye ulaşabilirsiniz.
Fark edileceği üzere Git ve GitHub, aynı alanla ilgili iki farklı şeydir. Git, dağıtık bir sürüm kontrol sistemidir ve kodunuzu saklamak, yönetmek ve düzenlemek için kullanılan bir araçtır.
Buna karşılık GitHub ise, Git depolarının barındırıldığı bir web tabanlı hizmettir ve ayrıca kod paylaşımı, bakım ve geliştirme işlemlerini kolaylaştıran bir araç görevi üstlenmektedir.
Özetle, Git, kodunuzu yönetmenize yardımcı olan bir araçken, GitHub ise bu kodların barındırıldığı ve paylaşıldığı bir platformdur.
Github İçin Bilinmesi Gereken Terimler
GitHub nedir sorusuna elimden geldiğince cevap vermeye çalıştım şimdi bu platformda tanık olabileceğiniz teknik terimlere değineceğim.
GitHub her ne kadar sosyal medya platformlarına benzer birçok özelliğe sahip olsa da tam anlamıyla bir sosyal medya platformu değildir. Mesela, GitHub’ta kullanıcılar kendi kodlarını paylaşabilir ve diğer kullanıcılar da bu kodları inceleyip pekala yorum yapabilirler. Bu nedenle, GitHub’ın birçok sosyal medya platformu özelliği bulunmaktadır.
Ancak halihazırda Instagram, Twitter veya Facebook gibi sosyal medya platformlarını kullanan birisi GitHub’a kayıt olduğunda karşılacağı platformun arayüzünü anlaması kolay olmayacaktır. Zira GitHub nevişahsınamünhasır birtakım teknik terimlere sahiptir ve ilk bakışta bunların ne işe yaradığını anlamak kolay olmayaktır. Bu yazıda elimden geldiğince bu terimlerin ne olduğunu ve ne işe yaradığını açıklamaya çalışacağım.
⭐ Repository (repo, depo)
Bir projenin tüm dosyalarını ve geçmişini içeren bir klasördür. Bir repoda, projeye ait kodlar, dosyalar ve diğer kaynaklar bulunur.
⭐ Branch (dal)
Bir repository içerisinde, projenin farklı sürümlerini veya geliştirme aşamalarını tutmak için kullanılan bir yapıdır. Örneğin, bir projenin üretim sürümü ile geliştirme sürümünü ayrı branch’lerde tutabilirsiniz.
⭐ Origin (başlangıç, kaynak)
Bir Git Repository’sinin başlangıç noktasını belirtir. Bu, bir projenin orjinal kaynağını ve yapılan değişikliklerin nasıl dağıtılacağını belirtir. Örneğin, bir projeyi kopyaladığınızda, ilgili Repository “origin” olarak adlandırılır ve bu adı kullanarak bu Repository’de yaptığınız değişiklikleri diğerleri ile paylaşabilirsiniz. Böylece, projenin orjinal kaynağının yanı sıra, diğer kullanıcıların da yaptığı değişiklikleri takip edebilirsiniz. Bu, projeyi kolayca geliştirmenize ve güncel tutmanıza yardımcı olur.
⭐ Clone (klon)
Github üzerindeki bir projenin bir kopyasını bilgisayarınıza indirmenize yarar. Böylece ilgili projenin tüm dosyalarını ve geçmişini kendi bilgisayarınızda çalışabileceğiniz bir biçimde kopyalabilirsiniz. Bu sayede projeyi kendi bilgisayarınızda geliştirebilir ve diğer kullanıcıların da yaptığı değişiklikleri takip edebilirsiniz.
⭐ Commit (değişiklik kaydetme)
Bir repository üzerinde yaptığınız değişiklikleri kaydetmek için kullanılan bir işlemdir. Her commit, değişiklikleri içeren bir mesajla birlikte kaydedilir ve bu sayede projenin geçmişini takip edebilirsiniz. Ayrıca her commit, bir kullanıcı tarafından yapılan bir değişikliği temsil eder ve bu değişiklikleri geri almak veya geçmiş sürümlerine dönmek mümkün hale getirir.
⭐ Forking
Github’da bir projenin kopyasını oluşturmak anlamına gelir. Bu, bir projenin kodunu kendi hesabınıza kopyalamanızı ve bu kopyayı değiştirip geliştirmenize olanak sağlar. Bu sayede, orijinal projenin kopyası üzerinde değişiklikler yapabilir ve bu değişiklikleri daha sonra orijinal projeye gönderebilirsiniz.
⭐ Pull request (Çekme isteği)
Kabaca pull request bir kullanıcının bir proje sahibine bir katkıda bulunmak için gönderdiği bir istektir. Örneğin, projede bir hata tespit ettiniz ve gerekli düzeltmeleri yaptıktan sonra ilgili düzeltmenin orijinal projeye eklenmesi gerektiğini düşünüyorsunuz. İşte tam da böylesi bir durumda, yaptığınız değişiklikleri “pull request” olarak gönderebilirsiniz. Bu talebi, proje yöneticisi inceleyebilir ve eğer makul bulursa, orijinal projeye ekleyebilir.
⭐ Merge (Birleştirme)
Merge, pull request onayı sonrası bir projedeki iki farklı geliştirme çalışmasının birleştirilmesidir. Yani, bir kullanıcının yaptığı değişiklikler proje sahibinin onayını alarak projeye dahil edildikten sonra, bu değişikliklerin proje sahibinin kendi çalışmasıyla birleştirilmesi anlamına gelir.
⭐ Ignore
GitHub’da Ignore komutu, git tarafından yönetilmemesi gereken dosyalar veya klasörler için kullanılır. Bu sayede, bu dosyalardaki değişiklikler git loglarında görüntülenmez ve projenin daha net bir görüntüsü elde edilebilir.
⭐ Push (gönderme, aktarma)
Bir Git deposundaki değişikliklerin bir remote deposuna gönderilmesini sağlar. Bu sayede, projenin güncel bir sürümünün herkese açık olarak paylaşılabilmesi sağlanır. Örneğin, bir projenin geliştirilmesi sırasında yapılan değişikliklerin bir remote deposuna gönderilmesini sağlamak için Push komutunu kullanabilirsiniz. Bu sayede, projenin en son değişiklikleri herkes tarafından erişilebilir hale gelir.
⭐ Issues (sorunlar, konular)
GitHub’ta Issues terimi, bir projenin geliştirilmesi sırasında ortaya çıkan sorunların veya önerilerin takip edilmesini ve çözülmesini sağlar. Diyelim ki bir projede hata buldunuz. İşte bu hata hakkında bir Issues açarak diğer geliştiricilere durumu bildirebilirsiniz. Bu sayede, hata hakkında diğer geliştiricilerle etkileşime girebilir ve hata hakkında çözüm bulunabilir. Ayrıca, bir projenin geliştirilmesine yönelik önerilerinizi de Issues kısmında paylaşabilirsiniz.