Git ve GitHub Workflows (İş Akışları)
eminbasbayan

Bu bölümde GitHub ve yerel çalışma akışları arasındaki farkları ve bir projenin Git iş akışını adım adım nasıl yöneteceğinizi öğreneceksiniz. Verimli bir şekilde nasıl çalışacağınızı anlamanızı sağlayacak workflow örnekleri de sunacağım.
### **GitHub ve Yerel Çalışma Akışları Arasındaki Farklar**
### **Yerel Çalışma Akışı (Local Workflow):**
Yerel çalışma akışı, Git’i yalnızca bilgisayarınızda kullanmak anlamına gelir. Değişiklikler **lokal depo** üzerinde yapılır, ancak başka bir sunucuya gönderilmez.
**Adımlar:**
Yerel Git deposu oluşturulur:
bash</s><i> </i>git init<i> </i><e> Dosyalarda değişiklik yapılır.
Değişiklikler eklenir ve commit edilir:
[object Object],[object Object],git add .
git commit -m "Değişiklik mesajı",[object Object], ```Tüm değişiklikler yalnızca bilgisayarınızdaki yerel repo içinde kalır.
### **GitHub ile Çalışma Akışı (Remote Workflow):**
GitHub gibi uzaktaki bir depo ile çalışmak, projeyi diğer geliştiricilerle paylaşmak ve birlikte çalışmak için gereklidir.
**Adımlar:**
GitHub’da yeni bir repository oluşturulur.
Yerel repo, uzak GitHub reposuyla bağlanır:
[object Object],[object Object],git remote add origin https://github.com/kullanici_adi/repo_adi.git,[object Object], ```Yerel değişiklikler commit edilip uzak depoya gönderilir:
[object Object],[object Object],git add .
git commit -m "Mesaj"
git push origin master,[object Object], ```Diğer geliştiriciler bu değişiklikleri kendi bilgisayarlarına çekebilir:
[object Object],[object Object],git pull origin master,[object Object], ```### **Workflow’un Gözden Geçirilmesi**
Bir projede düzenli bir Git iş akışı uygulamak, hataları azaltır ve ekiple verimli bir şekilde çalışmayı sağlar. İşte adım adım Git ve GitHub iş akışı örneği:
### **1. Yeni Bir Feature (Özellik) Üzerinde Çalışma**
bash</s><i> </i>git checkout -b feature/yeni-ozellik<i> </i><e> ### **2. Değişiklikleri Yapmak ve Test Etmek**
[object Object],[object Object],git add .
git commit -m "Yeni özellik eklendi",[object Object], ```### **3. Değişiklikleri Uzak Depoya Gönderme**
Bu komut yeni branch’i uzak depoya gönderir.
bash</s><i> </i>git push origin feature/yeni-ozellik<i> </i><e> ### **4. Pull Request (PR) Oluşturma**
GitHub’a gidip yeni branch için **Pull Request** (PR) oluşturun.
### **5. Kod Gözden Geçirme (Code Review)**
Takım arkadaşlarınız değişikliklerinizi inceleyebilir ve yorum yapabilir.
bash</s><i> </i>git add . git commit -m "Kod gözden geçirme sonrası düzenleme" git push origin feature/yeni-ozellik<i> </i><e> ### **6. Branch’i Ana Branch’e Birleştirme (Merge)**
Pull Request kabul edildikten sonra, değişiklikler ana branch’e birleştirilir.
[object Object],[object Object],git checkout master
git pull origin master,[object Object], ```### **7. Eski Branch’i Silme**
Değişiklikler tamamlandıysa artık feature branch’i silebilirsiniz:
Yerel branch’i silmek için:
bash</s><i> </i>git branch -d feature/yeni-ozellik<i> </i><e> Uzak branch’i silmek için:
[object Object],[object Object],git push origin --delete feature/yeni-ozellik,[object Object], ```### **Özet: Adım Adım Workflow**
Yeni branch oluştur:
bash</s><i> </i>git checkout -b feature/yeni-ozellik<i> </i><e> **Değişiklik yap ve commit et:**
[object Object],[object Object],git add .
git commit -m "Özellik eklendi",[object Object], ```**Branch’i uzaktaki depoya gönder:**
[object Object],[object Object],git push origin feature/yeni-ozellik,[object Object], ```**Pull Request oluştur ve kodu gözden geçir.**
**Değişiklikleri master’a birleştir:**
[object Object],[object Object],git checkout master
git pull origin master,[object Object], ```**Gereksiz branch’leri sil:**
[object Object],[object Object],git branch -d feature/yeni-ozellik
git push origin --delete feature/yeni-ozellik,[object Object], ```### **Sonuç**
Bu bölümde GitHub ve yerel çalışma akışlarının farklarını öğrendiniz. Ayrıca bir **workflow örneği** ile yeni bir özellik ekleme, kod gözden geçirme ve ana branch’e birleştirme adımlarını uyguladınız.
Bir sonraki bölümde **Git Branching (Dallandırma)** ve daha ileri Git konularını öğreneceksiniz!





