Olmazsa Olmaz GitHub Komutları: Pratik Rehber

Aziz Şentürk
Wellbees Tech
Published in
4 min readJul 14, 2023

GitHub, yazılım geliştirme sürecinde yaygın olarak kullanılan versiyon kontrol sistemidir. Projeleri barındırırken işbirliği yapmayı, kaynak kodu paylaşmayı, projelerin takibini ve versiyonlamayı kolaylaştırır. Bu makalede ise GitHub’ın en sık kullanılan komutlarını ile yeni başlayan bir yazılımcıyı gerekecek komutlardan bahsedeceğim.

1. Repository (Repo | Depo)

GitHub Repository, projenizin kaynak kodlarını barındırdığınız, versiyonladığınız ve takip ettiğiniz sanal depodur. Bu depo, projenizin tüm dosyalarını ve değişiklik geçmişini içerir.

Yeni Bir Repo Oluşturma

  1. GitHub web sitesinde oturum açın.
  2. Üst bar sağda tarafta bulunan “+”(artı) butonuna basın ve “New repository” seçeneğini seçin veya sol tarafta Top Repositories yanında bulunan “New” butonuna basın.
  3. Açılan sayfada “Repository Name” kısmına projenin adını yazın.
  4. Description kısmına isteğe bağlı olarak açıklamasını yazın.
  5. Public(herkese açık) veya Private(gizli) seçeneğini seçin.
  6. “Create repository” butonuna basın.

2. Bağlantı

Repoya bağlanmak için iki seçeneğimiz vardır. İlk seçenek, bilgisayarınızdaki bir projeyi yeni oluşturulmuş bir repoya bağlamaktır. İkinci seçenek ise mevcut bir GitHub reposunu bilgisayarınıza klonlamaktır.

Yeni Bir Repoya Bağlantı Kurma

git init # Projeye Git reposu özelliği kazandırır.
git remote add origin repo-url # Projeyi, repo-url'de bulunan repoya bağlar.

Mevcut Bir Repoyla Bağlantı Kurma

git clone <repo-url> # repo-url'de bulanan repoyu bilgisayara kopyalar.

3. Commit

Yaptığınız değişiklikleri repoya göndermek için kullanılan bir adımdır. Commit işlemi, değişiklikleri kaydederek projenizin geçerli durumunu oluşturur. Bu adımda, yapılan değişikliklerin yanı sıra bir yorum da eklenir, böylece değişikliklerin amacı ve içeriği açıklanır.

Commit Oluşturma

git add * # Tüm Değişiklikleri staged(hazır) alanına ekler.
git commit -m "First" # Staged alanındaki tüm değişiklikleri "First" adıyla commit olarak kaydeder.

Commit Gönderme

git push -u origin master # Değişiklikleri repodaki master branchine gönderir.

Commit Çekme

git pull # Repodaki değişiklileri bilgisayardaki projeye çeker.

4. Branch (Dal)

Projenin farklı versiyonlarını ve değişikliklerini yönetmek için kullanılan bir kavramdır. Bir branch, mevcut kod tabanından ayrılarak bağımsız bir çalışma alanı oluşturur. Bu sayede birden fazla kişi aynı projede çalışırken birbirinin çalışmalarını etkilemeden ayrı ayrı değişiklikler yapabilir.

Branchleri Listeleme

git branch # Projedeki tüm branchleri listeler

Yeni Bir Branch Oluşturma

git branch branchName # branchName adında bir branch oluşturur.

Branch Değiştirme

git checkout branchName # branchName adındaki branche geçiş yapar.

Yeni Bir Branch Oluşturma ve Değiştirme

git checkout -b branchName2 # branchName2 adında bir branch oluşturur ve geçiş yapar.

Branchleri Birleştirme

git checkout branchName # Hedef branche geçiş yapar.
git merge branchName2 # Kaynak branchdeki değişiklikleri hedef branche birleştirme

# branchName2 de bulunan değişiklikler branchName branchine geçer.

Branch Silme

git branch -d branchName2 # branchName2 adındaki branchi siler.

Branch’i Repoya Gönderme

# Gerekli commit işlemleri yapılır (3. madde commit oluşturma işlemi)

git push origin branchName # Değişiklikleri repodaki branchName branchine gönderir.

5. Fork (İş Birliği)

Fork işlemi, orijinal projenin bağımsız bir kopyasını oluşturmanızı ve bu kopyayı kendi GitHub hesabınızda yönetmenizi sağlar. Bu şekilde, proje değiştirebilir, geliştirebilir ve ihtiyaca göre uyarlanabilir.

Proje Forklama

  1. Projenin GitHub sayfasına gidin.
  2. Üst sağ tarafta bulunan “Fork” düğmesine basın.
  3. Açılan sayfada isteğe bağlı olarak Repository name(proje adı) ve Description(açıklama) bilgilerini düzenleyin.
  4. “Create fork” butonuna basın.

Forklanan Projeyi Bilgisayara Çekme

git clone <fork-repo-url> # fork-repo-url'de bulanan repoyu bilgisayara kopyalar.

Orijinal Projeden Yapılan Değişiklikleri Çekme

git remote add upstream <orijinal-proje-url> # orijinal-proje-url'de bulunan projeyi repoya upstream(ana kaynak) olarak ekler.
git fetch upstream # Orijinal projenin forklandıktan sonraki güncellemelerini alır.
git merge upstream/main # Güncellemeleri kendi projenize birleştirir. (main, master veya orjinal projenin ana branchi yazılmalı)

Forklanan Projeye Değişiklikleri Gönderme

# Gerekli commit işlemleri yapılır (3. madde commit oluşturma işlemi)

git push origin main # Kendi projenize değişiklikleri gönderir. (main, master veya forklanan projenin ana branchi yazılmalı)

Ana Projeye Değişiklikleri Gönderme

Ana projeye değişiklikleri göndermek için iki seçeneğimiz vardır. İlk seçenek, eğer yetkiniz varsa komut satırı(CLI) üzerinden projeye değişiklikleri göndermektir. İkinci seçenek ise pull request(çekme isteği) göndererek ana proje sahibinin onaylamasını beklemektir.

Ana Proje Yetki varsa

# Eğer ana projede yetkiniz varsa
git push upstream branchName # Ana projeye değişiklikleri gönderir.

Pull Request İsteği

  1. Forklanan projenin GitHub sayfasına gidin.
  2. Proje üzerinde bulunan “Contribute” butonuna basın ve ardından açılan kısımdaki “Open pull request” butonuna basın.
  3. Açılan sayfada “Title” kısmını projede neyi değiştirdiğiniz ile ilgili doldurun.
  4. İsteğe bağlı olarak değişikliklerinizi daha detaylı olarak “Leave a comment” bölümünde doldurun.
  5. “Create pull request” butonuna basın.

6. Extra

Yanlış Commit’i Geri Alma

git log  # Commit loglarını gösterir.
git revert commitId # İstenen commit'e geri döner.

Aradan Bir Commit’i Silme

git rebase -i HEAD~5 # Son 5 commiti listeler. Daha eskiye dönük isteniyorsa rakam değiştirilmelidir.

# Açılan listede silinmesi istenen commiti bulun.
# Pick yazısını drop olarak değiştirin.
# Yeni versiyonu kaydedin.

git push --force # Eski commitler düzenlendiği için geçmişi zorlayarak değiştirir.

--

--