Erreurs de fusion Git

J’ai une twig git appelée 9-sign-in-out avec un code qui fonctionne parfaitement, et je veux le transformer en master. Je suis actuellement sur la twig master.

 $ git branch 9-sign-in-out * master 

J’essaie de passer à la twig 9-sign-in-out , mais cela ne me permet pas de:

 $ git checkout 9-sign-in-out app/helpers/application_helper.rb: needs merge config/routes.rb: needs merge error: you need to resolve your current index first 

Toute idée de comment puis-je ignorer toutes les erreurs de la twig principale et transformer la twig de 9-sign-in-out dans le maître? Peut-être que git rebase ? Mais je ne veux pas perdre le code dans 9-sign-in-out twig de 9-sign-in-out .

Cela vaut la peine de comprendre ce que ces messages d’erreur signifient – les needs merge et les error: you need to resolve your current index first indiquant que la fusion a échoué et qu’il y a des conflits dans ces fichiers. Si, après tout, vous avez décidé que la fusion que vous tentiez de réaliser était une mauvaise idée, vous pouvez rétablir les choses avec:

 git reset --merge 

Cependant, vous devriez résoudre ces conflits de fusion, comme décrit dans le manuel git .


Une fois que vous avez réglé cela par l’une ou l’autre technique, vous devriez pouvoir contrôler la twig de 9-sign-in-out . Le problème avec le simple renommage de votre 9-sign-in-out to- master , comme suggéré dans la réponse de wRAR est que si vous avez partagé votre twig principale précédente avec quelqu’un, cela créera des problèmes car si l’historique des deux twigs divergé, vous allez publier une histoire réécrite.

Ce que vous voulez essentiellement faire, c’est fusionner votre twig de sujet 9-sign-in-out dans master mais conservez exactement les versions des fichiers dans la twig de rubrique. Vous pouvez le faire avec les étapes suivantes:

 # Switch to the topic branch: git checkout 9-sign-in-out # Create a merge commit, which looks as if it's merging in from master, but is # actually discarding everything from the master branch and keeping everything # from 9-sign-in-out: git merge -s ours master # Switch back to the master branch: git checkout master # Merge the topic branch into master - this should now be a fast-forward # that leaves you with master exactly as 9-sign-in-out was: git merge 9-sign-in-out 
 git checkout -f 9-sign-in-out # change branch, discarding all local modifications git branch -M master # rename the current branch to master, discarding current master 

comme suggéré en git status ,

 Unmerged paths: (use "git add ..." to mark resolution) both modified: a.jl both modified: b.jl 

J’ai utilisé git add pour terminer la fusion, puis git checkout fonctionne correctement.

git commit -m “Conflit fixe maître fusionné.”