1 pièce(s) jointe(s)
Conflits sur un merge - Git/GitLab
Bonjour,
je ne maitrise pas bien Git et suis bloqué depuis 2 jours sur un merge en raison de conflits.
Je ne comprends pas trop d'où vient le problème et donc quels conflits résoudre :
- est-ce parce que ma branche feature/6 locale est actuellement différente de la branche feature/6 distante ?
Je ne sais pas trop comment résoudre mon problème donc je vais essayer de le présenter le plus précisément possible en espérant qu'un expert Git saura m'aider.
En parallèle, je vais reprendre les bases pour mieux comprendre Git mais dans l'immédiat, il faut impérativement que je puisse résoudre ces conflits et remettre mon projet sur de bons rails.
J'ai un dépôt distant sur GitLab avec 3 branches :
- master (commit aea55d29)
- feature/4 (avec une demande merge abandonnée)
- feature/6 (commit 0542d3f8) avec une demande de merge mais impossible à merger en raison de conflits (message GitLab : "There are merge conflicts" sans avoir la main pour les résoudre via GitLab.)
En local, j'ai les 3 mêmes branches.
Ce que je voulais donc faire, c'est merger la branche feature/6 sur la branche master du dépôt distant. Je ne peut donc pas (cf message ci-dessus) et j'ai 2 options sur Gitlab :
- Merge locally
- You can merge this merge request manually using the command line :
Citation:
Check out, review, and merge locally
Step 1. Fetch and check out the branch for this merge request
git fetch origin
git checkout -b "feature/6" "origin/feature/6"
Step 2. Review the changes locally
Step 3. Merge the branch and fix any conflicts that come up
git fetch origin
git checkout "origin/master"
git merge --no-ff "feature/6"
Step 4. Push the result of the merge to GitLab
git push origin "master"
Afin de voir où j'en étais dans mes commit j'ai fait un git log --oneline --decorate --graph --all et je m’aperçois que j'ai fait n'importe quoi depuis le commit indiqué par la flèche jaune (=mon dernier commit "propre"):
Pièce jointe 521124
En résumé :
Je veux que mes branches master (locales et distantes) correspondent à la branche feature/6 (commit 0542d3f8) qui est la version à jour de mon application.
Mais je ne sais pas comment je dois procéder.
d'avance merci pour votre aide
repartir sur de bonnes bases...
ou alors, si je fait un git checkout 0542d3f pour me replacer sur mon commit "propre" et à partir de ce commit, je fait un git rebase master
procédure si je clone de nouveau mon dépôt...
Je sais que tu as raison et qu'il va falloir que je me forme
et je vais le faire cette semaine mais j'aurais aimé remettre mon projet sur de bon rails avant
je pense que c'est effectivement le scénario que tu décris que j'ai fait avec master, feature/4 et feature/6
je viens de cloner mon dépôt une 2ème fois (après avoir archivé mon projet sur ma branche feature/6)
je n'ai donc plus qu'une seule branche en local (master)
j'ai modifié ma branche master locale pour y intégrer l'ensemble des modifications que j'avais opéré sur la branche feature/6 et désormais ma branche master locale est à jour
j'ai commit
git status me donne :
Citation:
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working tree clean
ce qui est donc normal
maintenant, il faut que je push ma master local vers origin/master (git push origin master)
cela va mettre mon projet à jour sur le dépôt distant c'est bien çà ?