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 --abort
is 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 --abort
alleen gelijk is aan git reset --merge
aangezien MERGE_HEAD
Geschenk. 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_HEAD
is, kan de mislukte samenvoeging ongedaan worden gemaakt met git reset --merge
maar niet noodzakelijk met git merge --abort
, dus ze zijn niet alleen oude en nieuwe syntaxis voor hetzelfde. Persoonlijk vind ik git reset --merge
veel nuttiger in het dagelijkse werk.
Antwoord 3, autoriteit 2%
Met Git 2.10 (Q3 2016), weet je wat je moet doen, omdat git status
de optie git merge --abort
zal voorstellen.
Zie commit b0a61ab(21 juli 2016) door Matthieu Moy (moy
).
(Samengevoegd door Junio C Hamano — gitster
—in commit 5a2f4d3, 03 aug 2016)
status
: stel ‘git merge --abort
‘ voor indien van toepassingWe raden al ‘
git rebase --abort
‘ aan tijdens een conflicterende rebase.
Stel op dezelfde manier ‘git merge --abort
‘ voor tijdens conflictoplossing op ‘git merge
‘.