Git Kullanımı & GitHub İşlemleri (Başlangıç Seviyesi)

Gökhan YILMAZ
Huawei Developers - Türkiye
5 min readApr 19, 2022

Giriş

Bu yazımda, temel GitHub kullanımı hakkında bilgi vereceğim.

“GitHub’da repository nasıl açılır?”, “Local’de çalışılan proje ilk kez GitHub’a nasıl pushlanır?”, “Mevcutta GitHub’da bulunan repository için nasıl commit atılır?” gibi soruların cevaplarını örnekleri ile birlikte yazının devamında bulabilirsiniz.

Sürüm Kontrol (Version Control) Nedir?

Version control sistemleri, kodda yapılan değişikliklerin kaydını tutarak dosyalarda yapılan değişiklikleri kaydetmeye yardımcı olan bir yazılım aracıdır.

Git vs GitHub

Git, en yaygın olarak kullanılan sürüm kontrol sistemidir (VCS). Git, dosyalarda yaptığınız değişiklikleri izler, böylece yaptığınız değişikliklerin bir kaydını tutar ve ihtiyacınız olduğunda belirli sürümlere geri dönebilirsiniz.

GitHub, git kullanan projeleri yöneten bir web sitesidir. Git’i kullanmak için GitHub’a ihtiyacınız yok, ancak GitHub’ı git kullanmadan kullanamazsınız.

Avantajları

  • Kod dosyalarını önceki durumlarına geri döndürebilir (Revert işlemi),
  • Belirli sürelerdeki kod değişikliklerini karşılaştırabilir,
  • Bir soruna veya soruna neden olabilecek bir kod parçasını en son kimin değiştirdiğini bulabilir,
  • Ve belirli bir konuyu kim ve ne zaman gündeme getirdi sorusunun cevabını da bulabilirsiniz.

Git Akış Şeması

Git Akış Şeması

Temel Git Komutları

git init: Yeni bir Git repository’sini başlatır.

git add: Değişiklikleri çalışma dizininden Staging alanına taşır.

git commit: Staged snapshot alır ve proje geçmişine kaydeder. git add ile birlikte kullanılır.

git push: Localde çalışılan branch’teki değişiklikleri remote repository’e göndermenize olanak sağlar.

git pull: Pulling, git fetch’in otomatikleştirilmiş halidir. Remote repository’den branch’i localinize çeker, ardından onu hemen geçerli branch’le birleştirir.

git clone: Mevcut bir Git repository’sinin bir kopyasını oluşturur. Klonlama, geliştiricilerin repositorylerin kopyasını edinmelerinin en yaygın yoludur.

git status: Localde çalışma dizininin durumunu görüntüler.

Working — Staging — Remote Areas

Repository Oluşturulması

Öncelikle GitHub’da bir repository oluşturmanız gerekiyor. Bunun için GitHub’a giriş yapıldıktan sonra sağ üstte bulunan + butonuna tıklanıp açılan popup’da “New repository” butonuna tıklamalısınız.

Açılan ekranda repository adı alanı doldurulmak zorundadır. Bu alan, kullanılan GitHub hesabında benzersiz olmalıdır, bu nedenle aynı ada sahip birden fazla repository olamaz.

Repository oluştururken en önemli adımlardan biri; repository’nin open-source mu yoksa private mı ayarlanacağıdır.

Bu adımda herhangi bir README dosyası eklemeden devam ediyorum, local projemde bu işlemi manuel olarak ekleyerek ilerlemeyi tercih ediyorum. Bu adımda README dosyasını eklersek, local projemizi push atmadan önce pull çekmemiz gerekiyor.

Alanları doldurduktan sonra “Create repository” butonuna tıklıyoruz ve yeni ekrana geçiyoruz.

Bu adımda, localde yapılan ayarlamalara göre HTTPS veya SSH bağlantısı kullanılır.

  • git branch -M main komutu ile push gönderilecek branch’in main olduğu belirtilir.
  • Localdeki projenin hangi remote repository’e gönderileceği git remote add origin <url> komutu ile ayarlanır.
  • -u komutu localde açılan branch’i ilk defa remote’a push atarken kullanılır. Bu kullanımla birlikte, Git nereye push atılacağını ve nereden pull çekileceğini bilir.

Yeni Branch Oluşturulması

  • git checkout -b feature/new-branch komutu ile localde çalışılacak branch oluşturulur ve localde bu branch’e geçiş sağlanır.

Mevcut Branch’e Push İşlemi

  • git status komutu ile hangi dosyalarda değişiklik olduğu kontrol edilir. Kırmızı satırlar değiştirilmiş ancak eklenmemiş olanlardır, yeşil satırlar ise değiştirilmiş ve eklenmiş dosyalardır.
  • git add . geçerli dizindeki tüm dosyaları commit işlemi için ekler.
  • git commit -m "Commit message" komutu ile, staged snapshot alınır ve proje geçmişine “Commit message” olarak commit edilir.
  • git push origin feature/new-branch komutuyla, commitler remoteda bulunan feature/new-branch branch’ine gönderilir.

Projenin Clone İşlemi

Remote’da olan projeleri localimize çekmek için clone komutunu kullanırız.

Notlar

  • Kendi GitHub hesaplarınızda private ya da public repositoryler açarak bu işlemleri yapabilirsiniz. Başlangıçta, veri kaybınız olmaması için development süreçleri devam eden projeler yerine localinizde bir klasörün içine bir kaç .txt dosyası ekleyerek bu denemeleri yapmanız daha güvenli olacaktır.
  • Unutmayın ki, bu yazı başlangıç seviyesi için hazırlandı. Rebase, Revert, Pull Request gibi daha detay işlemleri de araştırmanızı tavsiye ederim.
  • Public olarak ayarlanan repositorylere internetteki herkes erişebilirken, Private olarak ayarlanan repositorylere sadece sizin ve yetki verdiğiniz hesapların erişimi olur.
  • Commit işleminden asla çekinmeyin, bireysel olarak çalıştığınız branch’te sizi engelleyen hiçbir durum söz konusu değildir. Eğer son aşamada, “bütün commitlerimi birleştirmek istiyorum” derseniz squash commit konusunu incelemenizi öneririm.

Sonuç

Farklı developerlarla birlikte çalıştığınız projelerin yönetimi git kullarak çok basit hale getirebilirsiniz. Ek olarak kişisel projelerinizde de git kullanarak bu yetkinliğinizi arttırabilirsiniz.

Referanslar

--

--