web-dev-qa-db-fra.com

Conflits entre git dans les requêtes pull

J'ai 2 branches - master et develop

J'ai effectué des demandes d'extraction dans ma branche develop où il contient 5 éléments, dans lesquels il correspond au nombre d'éléments de master.

Cependant, quelqu'un a fait des validations et pushed dans quelques éléments de plus dans la branche master et a donc maintenant 8 éléments.

Comme ma demande d'extraction dans la develop n'est toujours pas approuvée/fusionnée, chaque fois que j'essaie de mettre à jour ma demande d'extraction, le message indiquant que This pull request can't be merged. You will need to resolve conflicts to be able to merge m'appelle et me demande de procéder comme suit:

git fetch Origin master
git checkout develop 
git merge FETCH_HEAD
git commit
git Push Origin HEAD

Et cela se produit une fois que j'ai «repoussé» mes commits, ce qui me rend parfois confus. Ensuite, j'ai réalisé qu'il me demandait de rajouter et de réengager les 3 nouveaux articles supplémentaires. Cela signifie-t-il que je dois veiller à ce que les éléments et le contenu situés entre ces 2 branches soient les mêmes? J'ai toujours utilisé git pull/fetch, mais y aura-t-il un meilleur moyen de m'en assurer?

14
dissidia

Cela signifie que GitHub aimerait fusionner votre branche de relations publiques en master, mais ce n’est pas possible, car il existe des conflits. Comme vous en avez discuté dans les commentaires de la question, le meilleur moyen de résoudre ce problème (généralement) consiste à fusionner votre branche master en develop sur la ligne de commande. Cela vous montrera les conflits et vous demandera de les résoudre. Une fois que vous avez terminé et poussé cette fusion, le PR sera fusionné dans master en utilisant le bouton vert sur GitHub.

Vous pourriez simplement fusionner votre branche deploy en master (ce qui me semble un peu plus sensé). Dans ce cas, vous évitiez complètement les relations publiques. Vous devez fermer le PR "unmerged", et séparément vous devez manuellement pousser le commit de fusion sur master.

En le faisant de la première façon,

  1. vous créez une meilleure piste d'audit en fusionnant avec master sur GitHub, en utilisant le PR;
  2. vous donnez à votre équipe une chance de revoir votre code après la fusion, avant qu’il n’atteigne master; et
  3. si vous avez des tests automatiques (tels que Travis CI ou CircleCI) qui vérifient les PR, vous leur donnez également la possibilité d'exécuter votre code fusionné.
17
Peeja

Je l'ai résolu en utilisant l'interface Eclipse-git comme décrit ci-dessous. 

1- Gardez toutes les modifications prêtes dans la branche 'dev' et poussez-les vers git.

2- commander à la branche 'maître' et extraire toutes les modifications. 

3- Allez dans la vue 'Référentiels Git -> développez le dossier local', cliquez avec le bouton droit de la souris sur la branche 'master' et cliquez sur l'option 'fusionner'. 

4- Cela affichera tous les conflits avec des points rouges dans la fenêtre 'Mise en scène Git'.

5- Maintenant, faites un clic droit sur chaque point rouge et cliquez sur -> 'Remplacer par un index git'. cette tache rouge va disparaître maintenant.

6- Après avoir fait cela pour tous les points rouges, validez votre fusion à partir du bouton de droite. 

7-fait. 

0
Tukaram Bhosale