Git samenvoegpoging ongedaan maken

Ik heb een werkmap (#1) met daarin een leveranciersmap (#2). Er is één afhankelijkheid die ik handmatig wilde ophalen zonder componist (php-versie van npm/gem). Ik werkte in #1, heb geen wijzigingen opgeslagen/toegezegd, toen ik besloot dat ik de bibliotheek in #2 wilde bijwerken. Ik navigeerde naar leverancier/mijnnaam en deed git pull repository.

Helaas begon het te pullen en samen te voegen naar #1, in plaats van een nieuwe map in de leveranciersmap te maken.

Nu heb ik:

  • #1 map met mijn wijzigingen
  • #1 map met bestanden die ik niet uit de verkeerde repository wil hebben
  • #1 samenvoegconflicten zoals composer.json, Readme.md… (algemene bestanden)

Ik wil deze laatste git pull “ongedaan maken” zonder de wijzigingen die ik heb aangebracht in map #1 te verliezen. Hoe kan ik dit doen?


Antwoord 1, autoriteit 100%

git merge --abortis misschien wat je zoekt.


Antwoord 2, autoriteit 11%

Moderne Git:

git merge --abort

Ouder:

git reset --merge

Old-school (waarschuwing: alle lokale wijzigingen worden verwijderd):

git reset --hard

Maar eigenlijk is het de moeite waard om op te merken dat git merge --abortalleen gelijk is aan git reset --mergeaangezien MERGE_HEADGeschenk. Dit kan worden gelezen in de git help voor het merge commando.

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

Na een mislukte samenvoeging, wanneer er geen MERGE_HEADis, kan de mislukte samenvoeging ongedaan worden gemaakt met git reset --mergemaar niet noodzakelijk met git merge --abort, dus ze zijn niet alleen oude en nieuwe syntaxis voor hetzelfde. Persoonlijk vind ik git reset --mergeveel nuttiger in het dagelijkse werk.


Antwoord 3, autoriteit 2%

Met Git 2.10 (Q3 2016), weet je wat je moet doen, omdat git statusde optie git merge --abortzal voorstellen.

Zie commit b0a61ab(21 juli 2016) door Matthieu Moy (moy).
(Samengevoegd door Junio ​​C Hamano — gitsterin commit 5a2f4d3, 03 aug 2016)

status: stel ‘git merge --abort‘ voor indien van toepassing

We raden al ‘git rebase --abort‘ aan tijdens een conflicterende rebase.
Stel op dezelfde manier ‘git merge --abort‘ voor tijdens conflictoplossing op ‘git merge‘.

Other episodes