Tüm blog yazıları

Git Hataları: Merge Conflict ve Yanlış Push Sorunları

Bu bölümde Git kullanırken karşılaşabileceğiniz yaygın hataları ve bu hataların nasıl çözüleceğini adım adım inceleyeceğiz. Git’in esnek yapısı sayesinde çoğu hata kolayca çözülebilir, önemli olan hatanın kaynağını anlamaktır.

eminbasbayan4 dk okuma
Git Hataları: Merge Conflict ve Yanlış Push Sorunları

Bu bölümde Git kullanırken karşılaşabileceğiniz yaygın hataları ve bu hataların nasıl çözüleceğini adım adım inceleyeceğiz. Git'in esnek yapısı sayesinde çoğu hata kolayca çözülebilir, önemli olan hatanın kaynağını anlamaktır.

1. Merge Conflict (Birleştirme Çakışması)

Hata Açıklaması

Farklı branch'lerde aynı dosyanın aynı satırında değişiklik yapıldığında birleştirme sırasında merge conflict oluşur.

Hata Örneği

bash
git merge feature/yeni-ozellik

Çıktı:

metin
CONFLICT (content): Merge conflict in dosya.txt
Automatic merge failed; fix conflicts and then commit the result.

Çözüm Adımları

  1. Git, çakışan dosyaları işaretler. Dosyayı açıp <<<<<<<, =======, >>>>>>> gibi işaretlere bakın:
metin
<<<<<<< HEAD
Bu kısım master branch'ten geliyor.
=======
Bu kısım feature branch'ten geliyor.
>>>>>>> feature/yeni-ozellik
  1. Çakışmayı elle çözün:
    • Hangi değişikliğin kalması gerektiğine karar verin
    • Gereksiz kısımları silip dosyayı düzenleyin
  2. Çakışmayı çözdükten sonra değişiklikleri ekleyin ve commit yapın:
bash
git add dosya.txt
git commit -m "Merge conflict çözüldü"

2. Yanlışlıkla Commit Yapmak

Hata Açıklaması

Commit mesajını yanlış yazmak veya eksik dosyalarla commit yapmak sık karşılaşılan hatalardandır.

Çözüm 1: Commit Mesajını Düzenlemek

Son commit mesajını değiştirmek için:

bash
git commit --amend -m "Doğru commit mesajı"

Çözüm 2: Dosya Eklemeyi Unutmak

Commit yaptıktan sonra bir dosyayı eklemeyi unuttuysanız:

  1. Dosyayı ekleyin:
bash
git add unuttugum_dosya.txt
  1. Commit'i düzenleyin:
bash
git commit --amend

3. Yanlış Branch'te Çalışmak

Hata Açıklaması

Değişiklikleri yanlış branch'te yaparsanız, o değişiklikleri doğru branch'e taşımanız gerekir.

Çözüm Adımları

  1. Stash Kullanarak Değişiklikleri Kaydedin:
bash
git stash
  1. Doğru branch'e geçin:
bash
git checkout doğru-branch
  1. Stash'teki değişiklikleri geri yükleyin:
bash
git stash pop

4. Commit'i Geri Almak (Undo Commit)

Çözüm 1: Commit'i Silmeden Geri Almak (git revert)

git revert, bir commit'i iptal eden yeni bir commit oluşturur:

bash
git revert commit_id

Çözüm 2: Commit'i Silmek (git reset)

Soft Reset: Commit geri alınır ama değişiklikler kalır.

bash
git reset --soft HEAD~1

Hard Reset: Commit ve değişiklikler tamamen silinir (dikkatli olun!):

bash
git reset --hard HEAD~1

5. Uzak Depoya Yanlışlıkla Push Yapmak

Hata Açıklaması

Yanlışlıkla uzak depoya (örneğin GitHub) bir branch veya commit göndermek istenmeyen bir durumdur.

Çözüm Adımları

  1. Branch'i Silme:

Uzak branch'i silmek için:

bash
git push origin --delete branch_adi
  1. Yanlış Commit'i Düzelterek Push Etme:

Commit'i geri alıp doğru commit'i gönderin:

bash
git reset --hard HEAD~1
git push --force

Not: --force kullanımı dikkat gerektirir çünkü uzak depodaki diğer kullanıcıların kopyalarını etkileyebilir.

6. Untracked Dosyaları Temizlemek

Hata Açıklaması

Git tarafından takip edilmeyen (untracked) dosyalar proje klasöründe kalabalık yaratabilir.

Çözüm

Takip edilmeyen dosyaları silmek için:

bash
git clean -f

7. Değişiklikleri Yanlışlıkla Silmek

Hata Açıklaması

Yanlışlıkla git reset --hard gibi bir komutla değişiklikleri silmek can sıkıcıdır.

Çözüm

Git, her commit'i sakladığı için reflog ile eski commit'lere dönebilirsiniz:

  1. Reflog'u Görüntüleyin:
bash
git reflog
  1. Eski commit'e geri dönün:
bash
git reset --hard commit_id

Özet: Yaygın Git Hataları ve Çözümleri

HataÇözüm
Merge ConflictÇakışan dosyayı düzenleyip commit yapın
Yanlış commit mesajıgit commit --amend ile mesajı düzenleyin
Yanlış branch'te çalışmakgit stash ile kaydedip doğru branch'e taşıyın
Yanlış commit'i geri almakgit revert veya git reset kullanın
Uzak depoya yanlış push yapmakBranch'i silip --force ile düzeltilmiş commit'i gönderin
Untracked dosyaları temizlemekgit clean -f kullanarak temizleyin
Yanlışlıkla silinen değişiklikleri kurtarmagit reflog ile eski commit'e dönün

Sonuç

Bu bölümde, Git kullanırken karşılaşabileceğiniz yaygın hataların çözümlerini öğrendiniz. Merge conflict'ler, yanlış commit'ler veya yanlış push işlemleri gibi sorunları artık kolayca çözebileceksiniz.

Bir sonraki adımda Git bilginizi proje pratikleriyle pekiştirebilir ve gerçek dünyada uygulayabilirsiniz!

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele