Rebase, bir branch'teki commit geçmişini başka bir branch'in en son haliyle birleştirir ve commit geçmişini düzenler. Bu işlem, daha temiz ve doğrusal bir commit geçmişi sağlar.
Kullanımı:
git checkout feature/branch-name
git rebase main
Avantajları:
Merge, bir branch'teki değişiklikleri başka bir branch'e dahil etmek için kullanılır. Bu işlem, commit geçmişini olduğu gibi bırakır ve birleştirme işlemi için yeni bir merge commit oluşturur.
Kullanımı:
git checkout main
git merge feature/branch-name
Avantajları:
main, develop) için merge kullan ve takım arkadaşlarının commit geçmişine müdahale etme.Kodu commit etmeden önce her zaman en güncel değişiklikler için pull çek.
git fetch origin
git pull origin main
Bu işlem, olası çatışmaları (conflicts) önler ve en güncel kodla çalışmanı sağlar.
Her commit'ten önce kodu derle ve test et. Böylece hatalı kodun repository'ye girmesini önlersin.
# Örnek test komutu
npm run build && npm test
Binary dosyaları (.exe, .dll, .zip, vs.) git'e commit etme. Bunun yerine, binary dosyaları oluşturmak için gereken kaynak kodunu veya script'leri paylaş. .gitignore dosyasını kullanarak binary dosyaları hariç tut:
*.exe
*.dll
*.zip
Yeni sürümleri belirlemek için git tag'lerini kullan. Tag'ler belirli bir commit'e anlamlı bir isim verir.
git tag -a v1.0.0 -m "First release"
git push origin v1.0.0
Tag listeleme:
git tag
Commit mesajları kısa, açıklayıcı ve anlamlı olmalıdır. İyi bir commit mesajı formatı: kısa ama açıklayıcı (ör. Fix login issue).
Yeni özellikler, hata düzeltmeleri ve iyileştirmeler için her zaman ayrı branch'ler oluştur. Bu, kodun düzenli ve takip edilebilir olmasını sağlar.
feature/user-authenticationfix/payment-bugBüyük ve karmaşık commit'lerden kaçın. Değişikliklerinizi küçük ve anlamlı parçalara böl. İdeal commit, tek bir değişikliği veya küçük bir grup ilgili değişikliği temsil eder.
Kodu repository'ye merge etmeden önce her zaman bir Pull Request oluştur ve takım arkadaşlarının kodunu gözden geçirmesini sağla.
Merge sırasında oluşan çatışmaları dikkatlice incele ve çöz.
git fetch origin
git merge origin/main
# Conflict çöz ve commit et
git add .
git commit -m "Resolve merge conflicts"
feature/add-login, fix/header-alignmentgit push origin feature/branch-name
git branch -d branch-name
git push origin --delete branch-name