
Git, bir dağıtık versiyon kontrol sistemi olarak çalışır. Bu, her geliştiricinin kendi bilgisayarında bir Git deposuna sahip olabileceği ve projenin tüm geçmiş sürümlerinin dağıtık olarak saklanabileceği anlamına gelir. Geliştiriciler, bir Git deposu oluşturarak, kodlarını burada saklayabilirler ve Git’in sunmuş olduğu özellikleri kullanarak bu kodları kontrol edebilirler.
Git, her değişiklik için bir “commit” kaydı oluşturur. Commit kaydı, projenin o anki durumunun bir görüntüsüdür ve bu kaydı yapılan değişikliklerin açıklamaları ile birlikte Git deposuna kaydeder. Bu sayede, herhangi bir zamanda, projenin herhangi bir geçmiş sürümüne geri dönülebilir ve bu sürümdeki kodlar kullanılabilir.
Git ayrıca, farklı dallar (branches) oluşturma özelliği ile birden fazla geliştiricinin aynı anda çalışabileceği ve kendi değişikliklerini yapabileceği bir ortam sağlar. Bu sayede, bir geliştirici kendi dalında değişikliklerini yapabilirken, diğerleri de ana dalda çalışmalarına devam edebilirler. Dallar, farklı sürümler oluşturmak ve farklı özellikleri test etmek için de kullanılabilir.
GitHub ise, Git depolarının barındırılabileceği bir bulut tabanlı servistir. Bu sayede, geliştiriciler, Git depolarını GitHub’a yükleyerek, kodlarını paylaşabilir, işbirliği yapabilir ve projeleri yönetebilirler. GitHub, birçok farklı özellik sunar, örneğin, sorunları ve hataları takip etmek, projeleri yönetmek, kodu incelemek ve onaylamak, kodu paylaşmak ve işbirliği yapmak için araçlar sağlar.
GitHub ayrıca, “forking” özelliği ile başka birinin Git deposunu kopyalayarak, onun üzerinde çalışma ve kendi değişikliklerini yapma imkanı sağlar. Bu, açık kaynak kodlu yazılımlarda yaygın olarak kullanılan bir yöntemdir. Bir geliştirici, bir açık kaynak projeye katkıda bulunmak istediğinde, projenin GitHub deposunu kopyalar, kendi değişikliklerini yapar ve daha sonra projenin sahibine bir “pull request” göndererek, değişikliklerinin kabul edilmesini talep edebilir.
Git ve GitHub arasındaki en büyük fark, Git’in yerel depolama ile çalışması ve GitHub’ın bulut tabanlı bir hizmet olmasıdır. Ayrıca, GitHub, Git’in sağladığı özellikleri artırır ve kullanıcıların projelerini daha kolay yönetmelerini sağlar.
Diğer bir fark, Git’in ücretsiz bir açık kaynaklı yazılım olduğu ve herhangi bir ücret ödenmeden kullanılabildiği, ancak GitHub’ın birçok özelliği ücretli aboneliklerle sunulduğudur. GitHub, öğrencilere ve açık kaynaklı projelere ücretsiz kullanım sunar, ancak ticari kullanım için ücretli abonelik gerektirir.
Özetle, Git, bir yazılımın sürüm kontrolü için kullanılan araçtırken, GitHub, kodu bir arada tutmak, işbirliği yapmak ve projeleri yönetmek için kullanılan bir platformdur. Yani, Git’in temel amacı bir projenin kodunu yönetmek iken, GitHub’un amacı ise bu kodu depolamak, paylaşmak, işbirliği yapmak ve yönetmek için bir platform sağlamaktır.
Tablo şeklinde Git ve GitHub arasındaki farkları aşağıda görebilirsiniz:
| Git | GitHub |
| Yerel bir versiyon kontrol sistemi | Bulut tabanlı bir hizmet |
| Depolama ve yönetim işlemleri kullanıcının yerel cihazında yapılır | Merkezi depolama ve yönetim sunucusu üzerinden işlemler yapılır |
| Temel versiyon kontrolü özellikleri sağlar | Gelişmiş takım işbirliği özellikleri sunar |
| Ücretsiz bir açık kaynaklı yazılımdır | Birçok özellik için ücretli abonelik gerektirir |
| Kod yönetimi ve takım çalışması için temel özellikleri sağlar | Kod yönetimi ve takım çalışması için gelişmiş özellikler sunar |
Bu tablo, Git ve GitHub arasındaki temel farkları özetlemektedir. Ancak, her iki aracın da kendine özgü özellikleri ve kullanım senaryoları vardır.