Git Commit --amend
Son güncelleme
git commit --amend en son commit'i yenisiyle değiştirir; böylece mesajını düzeltebilir veya hazırlamayı unuttuğun dosyaları ekleyebilirsin. İkinci bir commit eklemez; sonuncuyu yeniden yazar. Bu commit'in hash'ini değiştirdiği için yalnızca henüz göndermediğin commit'leri amend et.
Bunları terminal playground'da dene: tarayıcında gerçek bir kabuk, kurulacak hiçbir şey yok.
Söz dizimi
| Command | What it does |
|---|---|
git commit --amend | Son commit'i ve mesajını düzenler |
git commit --amend -m "new message" | Son commit'in mesajını satır içinde değiştirir |
git commit --amend --no-edit | Hazırlanan dosyaları ekler, aynı mesajı korur |
Yaygın durumlar
| Goal | Command |
|---|---|
| Son mesajdaki bir yazım hatasını düzeltmek | git commit --amend -m "fixed message" |
| Son commit'e unutulan bir dosya eklemek | git add file ardından git commit --amend --no-edit |
| Zaten gönderilmiş bir commit'i amend etmek (dikkatli ol) | amend yap, ardından git push --force-with-lease |
git commit --amend SSS
Son commit mesajımı nasıl değiştiririm?
Satır içinde değiştirmek için
git commit --amend -m "new message", ya da düzenleyicini açıp orada yeniden yazmak için git commit --amend çalıştır. Bu, son commit'i yeni mesajla yeniden yazar; zaten gönderdiğin bir commit'te, force push yapmaya hazır değilsen bunu yapma.Son commit'e unutulan bir dosyayı nasıl eklerim?
Dosyayı
git add <file> ile hazırla, ardından git commit --amend --no-edit çalıştır. --no-edit bayrağı mevcut commit mesajını korur ve yeni hazırlanan değişiklikleri yalnızca önceki commit'e katar.git commit --amend yeni bir commit oluşturur mu?
Hayır; bir tane eklemek yerine son commit'i değiştirir. Sonuç tek bir commit gibi görünür, ancak teknik olarak eskisinin yerini alan, yeni bir hash'e sahip yeni bir commit'tir. İşte bu yüzden paylaşılan geçmişi amend etmek force push gerektirir.
Gönderilmiş bir commit'i amend etmek güvenli mi?
Yalnızca dikkatle. Amend commit'i yeniden yazar, bu yüzden gönderdikten sonra
git push --force-with-lease gerekir ki bu da orijinali çekmiş olan herkesi olumsuz etkileyebilir. Paylaşılan bir branch'te amend yerine yeni bir commit ya da git revert tercih et.Bunu çevrimiçi olarak deneyebilir miyim?
Evet.
git commit --amend komutunu tarayıcında gerçek bir kabukta çalıştırmak için terminal playground'u aç; kurulacak hiçbir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu da commit'leri adım adım düzeltmeyi kapsar.