Git birleştirme girişimini geri al


92

İçinde satıcı dizini (# 2) bulunan çalışma dizinim (# 1) var. Besteci olmadan manuel olarak çekmek istediğim bir bağımlılık var (npm / gem'in php sürümü). # 1'de çalışıyordum, # 2'de kitaplığı güncellemeye karar verdiğimde değişiklikleri kaydetmedim / gerçekleştirmedim. Vendor / myname'e gittim ve git pull repository yaptım.

Ne yazık ki, satıcı klasöründe yeni dizin oluşturmak yerine, # 1'e çekmeye ve birleşmeye başladı.

Şimdi sahibim:

  • Değişikliklerimi içeren 1 numaralı klasör
  • Yanlış depodan istemediğim dosyaları içeren # 1 klasör
  • # 1 composer.json, Readme.md ... gibi çakışmaları birleştirme (genel dosyalar)

1. klasörde yaptığım değişiklikleri kaybetmeden bu son git çekmesini "geri almak" istiyorum. Bunu nasıl yapabilirim?


Gerçekleştirilmemiş değişiklikler varsa Git, çekmeyi veya birleştirmeyi önler, bunun meydana geldiğinden emin misiniz?
CharlesB

1
@CharlesB Birleştirme iptal edildi, projeler jet birleştirme değil.
Çekmeden

Yanıtlar:


172

git merge --abort aradığınız şey olabilir.


6
Eski git sürümlerinde: git reset --merge
razz0

İşe yarıyor, ancak size hiçbir şey söylemiyor. git status
Onaylamak

18

Modern Git:

git merge --abort

Daha eski:

git reset --merge

Eski usul (uyarı: tüm yerel değişikliklerinizi atacak):

git reset --hard

Ama aslında, bunun git merge --abortsadece mevcut git reset --mergeolan veriye eşdeğer olduğunu fark etmeye değer MERGE_HEAD. Bu, birleştirme komutu için git yardımında okunabilir.

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

Başarısız bir birleştirmeden sonra, hayır olmadığında MERGE_HEAD, başarısız birleştirme geri alınabilir, git reset --mergeancak bununla gerekli değildir git merge --abort, bu nedenle bunlar yalnızca aynı şey için eski ve yeni sözdizimi değildir . Şahsen ben git reset --mergegünlük işlerde çok daha yararlı buluyorum .


2

Git 2.10 (Q3 2016) ile ne yapacağınızı bileceksiniz çünkü seçeneği git statusönereceksiniz git merge --abort.

Bakınız commit b0a61ab (21 Temmuz 2016) by Matthieu Moy ( moy) .
( Junio ​​C Hamanogitster tarafından birleştirildi - - in commit 5a2f4d3 , 03 Ağu 2016)

status: git merge --abortuygun olduğunda ' ' önerin

Zaten git rebase --abortçelişkili bir yeniden ödeme sırasında ' ' öneririz .
Benzer şekilde, " git merge --abortuyuşmazlık çözümü sırasında " önerin git merge.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.