Git: Bir birleştirmeyi iptal etme
Son güncelleme
Bir git merge çakışmalarla karşılaşırsa ve bunları çözmek yerine geri çekilmeyi tercih ederseniz, git merge --abort birleştirmeyi iptal eder ve dalınızı başlamadan önceki tam durumuna geri yükler. Çığırından çıkmış bir birleştirmeden temiz çıkış yoludur.
Zaten tamamlanmış bir birleştirmeyi farklı bir şekilde geri alırsınız - aşağıya bakın. Bunları terminal playground'da deneyin - tarayıcınızdaki gerçek bir kabuk.
Söz dizimi
| Command | What it does |
|---|---|
git merge --abort | Çakışan bir birleştirmeyi iptal eder, birleştirme öncesi durumu geri yükler |
git reset --merge | Daha eski eşdeğeri - birleştirmeyi iptal eder ve sıfırlar |
git merge --quit | Birleştirmeden çıkar ama çalışma ağacını olduğu gibi bırakır |
Zaten biten bir birleştirmeyi geri alma
İptal etmekten farklı - birleştirme commit'i zaten var.
| Situation | Command |
|---|---|
| Birleştirme yereldir, gönderilmemiştir | git reset --hard ORIG_HEAD |
| Birleştirme zaten gönderilmiştir | git revert -m 1 <merge-hash> |
Git birleştirme iptali SSS
Devam eden bir birleştirmeyi nasıl iptal ederim?
git merge --abort komutunu çalıştırın. Bir birleştirme çakışmalar nedeniyle durduysa ve bunları çözmek istemiyorsanız, bu işlemin tamamını iptal eder ve dalınızı ve çalışma ağacınızı birleştirme başlamadan önce oldukları duruma geri döndürür.git merge --abort ile git reset --merge arasındaki fark nedir?
Esasen aynı işi yaparlar - devam eden bir birleştirmeyi iptal eder ve birleştirme öncesi durumu geri yüklerler.
git merge --abort bu amaç için özel olarak yapılmış modern komuttur; git reset --merge ise hâlâ çalışan eski yöntemdir. Netlik için git merge --abort komutunu tercih edin.Zaten tamamlanmış bir birleştirmeyi nasıl geri alırım?
Bu bir iptal değildir, çünkü birleştirme commit'i zaten vardır. Birleştirme yalnızca yerelse,
git reset --hard ORIG_HEAD dalı birleştirmeden önceki konumuna geri taşır - HEAD~1'in işe yaramayacağı bir fast-forward sonrasında da çalışır. Commit'lenmemiş çalışmayı sildiği için önce git status ile kontrol edin. Birleştirmeyi zaten gönderdiyseniz, paylaşılan geçmişi yeniden yazmadan tersine çevirmek için git revert -m 1 <merge-hash> kullanın.Bir birleştirmeyi iptal etmek diğer değişikliklerimi kaybettirir mi?
git merge --abort birleştirmeden hemen önceki durumu geri yükler, dolayısıyla birleştirmenin değişiklikleri atılır ama kendi commit'lenmiş çalışmanız olduğu gibi kalır. Birleştirmeye başlamadan önce commit'lenmemiş değişiklikleriniz varsa, önce onları commit'leyin veya stash'leyin - iptal, birleştirme öncesi commit durumunu geri yükler.Bunu çevrimiçi olarak deneyebilir miyim?
Evet. Tarayıcınızdaki gerçek bir kabukta
git merge --abort çalıştırmak için terminal playground'u açın - kurulacak bir şey yok. Coddy'nin ücretsiz etkileşimli Git kursu da birleştirmeyi ve çakışma çözmeyi adım adım ele alır.