Git merge is niet mogelijk omdat ik niet-samengevoegde bestanden heb

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/masterniet 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. masterIs uw lokaal gecontroleerde versie van de tak. origin/masteris de nieuwste versie van mastervan uw GIT-server die u hebt opgehaald (gedownload). Een fetchis altijd veilig omdat het alleen de “Origin / X” -versie van uw vestigingen zal bijwerken.

Dus, om uw masterBRANK 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 pullopdracht doen de fetchen mergeVOOR 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 --aborten 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

Other episodes