GitHub Nedir? Nasıl Kullanılır?

Yazılım geliştirme dünyasının içindeyseniz GitHub hesabınızın olması mutlaka gerekli olacaktır. GitHub kullanımını öğrenmeye başmadan önce, GitHub’ın kalbi olan Git’i anlamanız gerekli. Git ile GitHub birbirine karıştırılmaması gereken en önemli noktalardan biri. GitHub, Git yazılımı ile entegre olmuş bir depolama alanıdır.

GitHub kullanımı ile püf noktaları öğrenmek ve en sık kullanılan komutları öğrenmek için yazının devamına göz atın. 👇

Versiyon Kontrol Sistemi Nedir?

GitHub’ı anlamak için önce Git’i anlamanız gerekli. Git, Linus Torvalds tarafından geliştirilen açık kaynaklı sürüm kontrol sistemidir. Diğer sürüm kontrol sistemleri ile oldukça benzer yapıya sahiptir.

Versiyon kontrol sistemleri, bir döküman yazılım projesi üzerinde yapılan degişiklikleri merkezi bir depoda saklayan ve istediğimizde yönetmemizi sağlayan bir sistemdir. Yazılımcıların geliştirdikleri projeleri üzerinde yeni bir sürümlerini kontrol edebilecekleri, değişiklikler yapabilecekleri bir ortam sağlar.

Versiyon kontrol sistem tipleri 3’e ayrılır:
1-Local Versiyon Kontrol Sistemleri: Versiyon sistemleri arasında en eski yaklaşımdır. Bu sistemde, üzerine çalıştığımız proje içerisinde yaptığımız değişiklikler veritabanında tutulur fakat sistem üzerinde sadece tek kullanıcı etkin bir şekilde çalışabilir. En yaygın VCS araçlarından biri, bugün hâlâ birçok bilgisayarda kurulu olan ve dağıtılan, rcs’dir.

2. Merkezi Versiyon Kontrol Sistemleri: Birden fazla kişinin aynı proje üzerinde etkili çalışması adına geliştirilmiş versiyon sistemi çeşididir. CVS ve SVN, merkezi versiyon kontrol sistemleridir.
Bu yöntemin, Local CVS‘lere göre avantajları vardır. Örneğin, bir proje üzerinde çalışan kişiler, diğerlerinin ne yaptığından belirli ölçüde haberdardır.

En büyük sorunlarından biri ise; merkezi veritabanının sabit diskinde sorun oluşursa kullanıcıların çalıştıkları projelerin diğer sürümlerini kaybetme durumu olacaktır.

3. Dağıtık Versiyon Kontrol Sistemleri: Merkezi versiyon sistemlerinin geliştiricilerin offline çalışabilmesi ve sorun oluşması durumunda verileri tekrar yükleme gibi sorunlarından dolayı geliştirilmiş bir versiyon sistemidir.

Git, Mercurial, Bazaar, BitKeeper dağıtık versiyon sistemlerine örnek verilebilir. Bu sistemler merkezi bir repo sistemi bulundurmayıp proje üzerinde çalışan her makine, projenin kopyasını kendi bilgisayarında tutmaktadır. Yazılım geliştiricileri proje üzerinde değişiklik yapmak istediğinde veya projenin geçmiş sürümlerine göz atmak istediğinde, uzak depo ile iletişime geçmek zorunda değildir.

SVN / Git / Mercurial / Bazaar Kıyaslama

VCS Depo Konumu Conflict Çözümü
SVN Merkezi merge-before-commit
Git Dağıtık commit-before-merge
Mercurial Dağıtık commit-before-merge
Bazaar Dağıtık merge-before-commit

Git Nedir?

Git, Linus Torvalds tarafından 2005 yılında oluşturulan açık kaynaklı sürüm kontrol sistemleri arasında en popüler olanıdır.
Bir proje sadece tek dosya veya binlerce dosya olabilir bu aşamda Git, proje içerisinde yapılan değişiklikleri yönetmek için kullanılır.
Git, dağıtılmış bir sürüm kontrol sistemidir; bu sayede kod tabanlarının tümü geliştiricilerin bilgisayarında mevcut olduğu anlamına gelir.

GitHub Nedir?

GitHub, sürüm kontrolü ve işbirliği için bir kod barındırma platformudur. Sizin ve birlikte çalıştığınız ekip arkadaşlarınızın aynı proje üzerinde çalışmasına olanak tanır.

2008 yılında geliştirilen GitHub, Git depolarını barındıran web tabanlı uygulamadır. Git’in bazı noktalarda ekipler için sorun yarattığını gören GitHub geliştirileri, ekipler arası üretkenliği artırmak için Git’in üzerine yeni keşif araçları ve özellikler ekleyerek geliştirme yapmışlardır. Kısaca GitHub, bulut tabanlı Git deposu barındırma hizmeti sağlayan, kar amacı güden bir şirkettir.

GitHub’ın arayüzü kullanıcı dostudur, bu nedenle kodlamaya yeni başlayanların Git kullanması oldukça kolay olacaktır. GitHub olmadan Git elbette kullanılır fakat biraz daha teknik bilgi ve komut satırı kullanımını gerektirir.

GitHub Kullanımı

GitHub arayüzünü daha detaylandırmak ve nasıl bir yapıya sahip olduğunu anlamak için, bir GitHub deposunda barındırılan WordPress kaynak kodunu inceleyerek başlayabiliriz.

Buradan, üzerinde çalışılan çeşitli dalları ve birisinin ne zaman bir commit attığını görebilirsiniz (dosyayı “kaydetmek” gibi). Bir repository’nin nasıl kurulduğuna bağlı olarak, kendi branch’ınızı oluşturarak kendi commitlerinizi atmaya başlayabilirsiniz.

Bazı değişiklikleri yaptıktan sonra, bir pull request talebinde bulunarak bu kodu bir şubeye geri gönderebilirsiniz. Pull request talebi, temelde branch’dan sorumlu kişiden kodunuzu eklemesini istemektir. Ayrıca o kişinin kodda tam olarak neyi değiştirdiğinizi görmesine de yardımcı olur.

Eğer daha kalıcı olarak kendi hesabınızda WordPress kaynak kodunun bir kısmını veya tamamını düzenlemek isterseniz fork özelliğini kullanabilirsiniz.

github kullanımı

Fork ve Pull Request

Fork özelliğini kullanmanın temelde 2 sebebi vardır:
1-Projenin kopyasını kendi üzerimize alarak kopya sürümü üzerinden çalışmak
2-Diğer sebebi ise, fork ile alınan projenin üzerinde değişiklik yapıp projenin sahibinin onayına göndererek projeye katkıda bulunmayı amaçlamak.

Fork ettiğimiz projenin üzerinde çalışarak proje üzerinde yaptığımız değişiklikleri, projenin sahibine pull request şeklinde gönderebiliriz. Pull request olarak göndermenin anlamı; proje üzerinde değişiklik yaptım, sen de bu değişiklikleri onaylarak  projene merge et demek anlamına gelir.

Buradan, üzerinde çalışılan çeşitli dalları ve birisinin ne zaman bir commit attığını görebilirsiniz (dosyayı “kaydetmek” gibi). Bir repository’nin nasıl kurulduğuna bağlı olarak, kendi branch’ınızı oluşturarak kendi commitlerinizi atmaya başlayabilirsiniz.

Bazı değişiklikleri yaptıktan sonra, bir pull request talebinde bulunarak bu kodu bir şubeye geri gönderebilirsiniz. Pull request talebi, temelde branch’dan sorumlu kişiden kodunuzu eklemesini istemektir. Ayrıca o kişinin kodda tam olarak neyi değiştirdiğinizi görmesine de yardımcı olur.

Eğer daha kalıcı olarak kendi hesabınızda WordPress kaynak kodunun bir kısmını veya tamamını düzenlemek isterseniz fork özelliğini kullanabilirsiniz.

👉Adım 1 – Bir Repository Oluşturun

Genellikle bir repo, tek bir proje düzenlemek için kullanılır. Repository; projenizin ihtiyaç duyduğu her şeyi içerebilir: klasörler ve dosyalar, resimler, videolar, elektronik tablolar…
Projeniz hakkında bilgi içeren bir dosya olarak README eklemenizi öneririz.

Yeni bir repo oluşturmak için:

  1. Sağ üst köşede, avatarınızın veya kimlik simgenizin yanındaki alandan New repository öğesini seçin.
  2. Reponuzu adlandırın.
  3. Kısa bir açıklama yazın.
  4. Initialize this repository with a README seçin.
  5. Create repository’e tıklayın.

👉Adım 2 – Branch Oluşturun

Branch, bir reponun farklı sürümleri üzerinde aynı anda çalışmak için kullanılır.

Varsayılan olarak, deponuzun, main tanımlayıcı branch’ı vardır. Yeni bir branch oluşturduğunuzda main, o anda olduğu gibi bir kopya veya anlık görüntü oluşturur. Siz branch üzerinde çalışırken başka biri değişiklik yaptıysa, bu güncellemeleri alma imkanı sağlar.

Yeni bir repo oluşturmak için:

  1. Oluşturduğunuz yeni reponuza gidin.
  2. Dosya listesinin en üstündeki branch: main yazan açılır menüye tıklayın .
  3. Yeni branch text box!a bir branch adı yazın .
  4. Create branch kutusunu seçin veya “Enter” tuşuna basın.
readme-edits

👉Adım 3 – Commit yapın ve uygulayın

Şimdi iki brach’ınız var: main ve readme-edits. Değişikliklerimizi yeni branch üzerine ekleyerek ilerleyeceğiz.

Commit mesajları, yaptığınız değişikliklerin geçmiş sürümlerini gösterir ve böylece diğer katkıda bulunanlar ne yaptığınızı ve nedenini anlayabilir.

İlk commit🚀

  1. README.md dosyasına tıklayın.
  2. Edit simgesine tıklayın.
  3. Bu aşamada, projen hakkında detaylı bilgiler yazarak insanların ne yapmak istediğini daha iyi anlamasına yardımcı olabilirsin.
  4. Ve son olarak Commit changes’e tıklayın.

👉Adım 4 – Pull Request

Pull request açtığınızda, proje üzerinde değişiklik yaptığınızı gösterirsiniz ve proje sahibinin katkınızı gözden geçirip çekmesini ve birleştirmesini talep edersiniz. Değişiklikler, eklemeler ve çıkarmalar yeşil ve kırmızı olarak gösterilir.

Pull request mesajınızda GitHub’ın “@” ile bahsetme özelliğini kullanarak belirli kişilerden veya ekiplerden geri bildirimler isteyebilirsiniz.

  1. Pull Request sekmesi, ardından New pull request düğmesine tıklayın.
  2.  Example Comparisons sayfasında yaptığınız değişiklikleri inceleyin ve göndermek istediğiniz şeyden emin olun.
  3. Emin olduğunuzda, Create Pull Request düğmesine tıklayın.
  4. Talebinize bir başlık ekleyerek kısa bir açıklama yazın.
  5. Mesajınızı tamamladığınızda, Create pull request’e tıklayın.

👉Adım 5 – Pull Request’inizi Merge edin

Son aşamada, yaptığınız değişikliklerinizi bir araya getirmelisiniz.
main ve readme-edits branch’ınızı merge edin.

  1. Değişiklikleri ile birleştirmek için yeşil Merge pull request düğmesine tıklayın.
  2. Confirm merge’ye tıklayın .
  3. Devam edin ve değişiklikler dahil edildikten sonra Delete branch düğmesine tıklayarak branch’ı silin.
commit

Her Yazılımcının Bilmesi Gereken Git Komutları

En çok kullanılan git komutlarından biridir.
E-posta, kullanıcı adı ve dosya biçimi gibi kullanıcı spesifik yapılandırma değerlerini ayarlamak için kullanılır.
Örneğin, aşağıdaki komut e-postayı ayarlamak için kullanılabilir:

git config --global user.email [email protected]

git diff komutu çakışmaları listelemek için kullanılır.
Çakışmaları taban dosyayla görüntülemek için:

git diff --base

Merge etmeden önce birleştirilecek dallar arasındaki çakışmaları görüntülemek için ve mevcut çakışmaları listelemek için:

git diff

Bu komut yeni bir git dizini oluşturmak için kullanılır.

git add komutu, dizine dosyalar eklemek için kullanılabilir.
Örneğin; yerel dizinde bulunan tg.txt adlı bir dosyayı dizine ekleyecektir:

git add tg.txt

git clone, dizin kontrol amaçları için kullanılır.
Dizin uzaktaki bir sunucuda bulunuyorsa:
git clone [email protected]:/path/to/repository

Aksi durumda, yerel bir dizinin kopyası oluşturulmak istemiyorsa:
git clone /path/to/repository kullanabilirsiniz.

git commit, değişiklikleri uygulamak için kullanılır.

git commit –m “Uygulama için komut mesajı”

git status, henüz eklenmeyecek veya taahhüt edilen dosyalarla birlikte değiştirilen dosyaların listesini görüntüleme imkanı sağlar.

git push, en çok kullanılan temel git komutlarından biridir. Yapılan değişiklikleri çalışma diziniyle ilişkili uzak dizinin ana dalına gönderir.

git push origin master

git checkout, branch oluşturmak veya branchlar arasında geçiş yapmak için kullanılır.
Brach oluşturmak için:

command git checkout -b

Bir daldan diğerine geçmek için:

git checkout

git merge komutu, bir dalı etkin dal ile birleştirmek için kullanılır.

Uzak depoda bulunan tüm değişiklikleri yerel çalışma dizinine birleştirmek için git pull komutu kullanılır.