git blijft me verwarren met zijn nutteloze foutwaarschuwingen. Deze verdient echt een prijs:
git merge is not possible because you have unmerged files
Mijn situatie: mijn master-branch op github werd bewerkt (direct in de browser) terwijl mijn lokale master-branch ook werd bewerkt.
Ik veronderstel ten onrechte dat je de twee versies gewoon kunt samenvoegen en klaar bent, maar ik kan ook niet samenvoegen – omdat mijn bestanden niet zijn samengevoegd.
git merge remote/master
resulteert in
error: merge is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
Dus, na het toevoegen en vastleggen van de lokale wijziging en vervolgens opnieuw proberen samen te voegen, krijg ik:
merge: remote/master - not something we can merge
Het is duidelijk dat ik hier iets essentieels mis… Heb ik een verkeerd idee over wat samenvoegen betekent? Hoe los ik dit probleem op van het hebben van een andere remote master/lokale master branch?
Antwoord 1, autoriteit 100%
De foutmelding:
samenvoegen: remote/master – niet iets dat we kunnen samenvoegen
beweert dat Git remote/master
niet herkent. Dit komt waarschijnlijk omdat je geen “remote” met de naam “remote” hebt. Je hebt een “afstandsbediening” met de naam “oorsprong”.
Denk aan “afstandsbediening” als een alias voor de URL op uw GIT-server. master
Is uw lokaal gecontroleerde versie van de tak. origin/master
is de nieuwste versie van master
van uw GIT-server die u hebt opgehaald (gedownload). Een fetch
is altijd veilig omdat het alleen de “Origin / X” -versie van uw vestigingen zal bijwerken.
Dus, om uw master
BRANK IN SYNC te krijgen, download eerst de nieuwste inhoud van de GIT-server:
git fetch
Voer vervolgens de samenvoeging uit:
git merge origin/master
… maar misschien zou de betere aanpak zijn:
git pull origin master
De pull
opdracht doen de fetch
en merge
VOOR U IN EEN STAP.
Antwoord 2, Autoriteit 93%
Ik had herhaaldelijk dezelfde uitdaging ooit geleden. Dit probleem gebeurt meestal wanneer u probeert uit de Remote Repository te trekken en u hebt een aantal bestanden op uw lokale voorbeeld met de externe versie, als u GIT gebruikt vanuit een IDE, zoals Intellij, wordt u gevraagd en meldt u Keuze als u uw eigen wijzigingen wilt behouden of geeft u de voorkeur aan de wijzigingen in de externe versie om de uwe te overschrijven ‘. Als u geen keuze maakt, valt u in dit conflict. Het enige dat u hoeft te doen is uitgevoerd:
git merge --abort # The unresolved conflict will be cleared off
en je kunt doorgaan wat je aan het doen was voor de pauze.
Antwoord 3, Autoriteit 40%
Het kan de ongehinderde paden zijn die oorzaak
error: Merging is not possible because you have unmerged files.
Zo ja, probeer:
git status
Als het zegt
u hebt ongehoeide paden.
doe zoals voorgesteld: ofwel conflicten oplossen en vervolgens de samenvoeging volledig uitvoeren of afbreken met
git merge --abort
U ziet mogelijk ook bestanden die worden vermeld onder Niet-samengevoegde paden, die u kunt oplossen door te doen
git rm <file>
Antwoord 4, autoriteit 10%
Ik kwam hetzelfde probleem tegen en kon niet kiezen tussen lachen of mijn hoofd op de tafel slaan toen ik deze foutmelding las…
Wat git je echt probeert te vertellen: “Je bevindt je al in een merge-status en moet eerst de conflicten daar oplossen!”
Je hebt geprobeerd samen te voegen en er is een conflict opgetreden. Dan blijft git in de merge-status en als je de merge met andere commando’s wilt oplossen, denkt git dat je een nieuwe merge wilt uitvoeren en dus vertelt het je dat je dit niet kunt doen vanwege je huidige niet-samengevoegde bestanden…
Je kunt deze status verlaten met git merge --abort
en nu proberen andere commando’s uit te voeren.
In mijn geval probeerde ik een pull en wilde ik de conflicten met de hand oplossen toen de fout optrad…
Antwoord 5, autoriteit 7%
Een andere mogelijke oorzaak hiervoor (Intellij was bij mijn geval betrokken, maar ik weet niet zeker of dat ertoe deed): proberen om wijzigingen van een hoofdbranch in een branch van een featurebranch te mergen.
Met andere woorden, het samenvoegen van “main” in “current” in de volgende opstelling:
main
|
--feature
|
--current
Ik heb alle conflicten opgelost en GiT rapporteerde niet-samengevoegde bestanden en ik zat vast totdat ik van main naar feature fuseerde en daarna feature naar huidige.
Antwoord 6, autoriteit 3%
Ik had ook soortgelijke problemen.
Mijn probleem: wanneer ik een branch samenvoeg en conflicten met IDE oplos, zal de IDE het commit-paneelbord normaal tonen, maar dat doet het niet.
Ik denk dat ik succesvol gemerged heb, maar als ik push of pull-git herinner me eraan “maak je wijzigingen vast voordat je ze samenvoegt” of “Updates werden afgewezen omdat de tip van je huidige branch achter is”.
Mijn oplossing: git merge --continue
als je deze samenvoeging wilt afbreken, kun je ook git merge --abort
uitvoeren