Olmazsa Olmaz GitHub Komutları: Pratik Rehber
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
- GitHub web sitesinde oturum açın.
- Ü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.
- Açılan sayfada “Repository Name” kısmına projenin adını yazın.
- Description kısmına isteğe bağlı olarak açıklamasını yazın.
- Public(herkese açık) veya Private(gizli) seçeneğini seçin.
- “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
- Projenin GitHub sayfasına gidin.
- Üst sağ tarafta bulunan “Fork” düğmesine basın.
- Açılan sayfada isteğe bağlı olarak Repository name(proje adı) ve Description(açıklama) bilgilerini düzenleyin.
- “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
- Forklanan projenin GitHub sayfasına gidin.
- Proje üzerinde bulunan “Contribute” butonuna basın ve ardından açılan kısımdaki “Open pull request” butonuna basın.
- Açılan sayfada “Title” kısmını projede neyi değiştirdiğiniz ile ilgili doldurun.
- İsteğe bağlı olarak değişikliklerinizi daha detaylı olarak “Leave a comment” bölümünde doldurun.
- “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.