Comment résoudre les conflits avec Git?

j'ai un pull request ce pour quoi GitHub me dit "cette branche a des conflits qui doivent être résolus."J'ai essayé:

~/src/networkx: git rebase origin/master
Current branch topo is up to date.
~/src/networkx: git merge origin/master
Already up-to-date.
10
demandé sur Kevin Guan 2015-08-06 21:39:47

3 réponses

en Fait... vous n'avez plus à tirer et rebaser localement.

Vous pouvez résoudre les conflits de fusion (simple) de la forme droite GitHub, depuis Déc. 2016.

Voir la section "simple à Résoudre les conflits de fusion sur GitHub "

vous pouvez maintenant résoudre de simples conflits de fusion sur GitHub à partir de vos demandes de pull, vous épargner un voyage à la ligne de commande et aider votre équipe à fusionner les demandes de pull plus rapide.

Demonstrating how to resolve a merge conflict

la nouvelle fonctionnalité vous aide à résoudre les conflits causés par des changements de ligne concurrents, comme quand les gens font des changements différents à la même ligne du même fichier sur différentes branches dans votre dépôt Git.

vous aurez encore à résoudre d'autres conflits plus compliqués localement sur la ligne de commande.

5
répondu VonC 2016-12-12 23:01:50

vous devez D'abord vous assurer que le dépôt distant en amont est défini:

git remote add upstream git@github.com:networkx/networkx.git

alors vous devez aller chercher upstream/master et puis rebase. C'est quelque chose le long des lignes de:

git fetch upstream
git checkout <feature-branch>
git rebase upstream/master

au fur et à mesure que git rejoue votre travail sur upstream/master, les conflits seront soulevés et vous devrez plonger dans les fichiers pour les résoudre. Ensuite, vous:

git add <files that you fixed>
git rebase --continue
8
répondu Paul H 2015-08-06 18:50:39

essayez d'exécuter ceci pour voir quels remotes vous avez mis en place:

git remote -v

Si vous n'avez pas de télécommande pour le dépôt original vous forké sur Github, vous pouvez l'ajouter comme suit:

git remote add upstream https://github.com/networkx/networkx.git

ceci va nommer la télécommande amont. Après cela, vous pouvez fusionner en amont dans votre branche et résoudre vos conflits:

git fetch upstream
git merge upstream/master

Si le premier git remote -v commande a déjà montré une télécommande avec ce nom, il suffit d'utiliser cela au lieu d'ajouter un nouveau distant. Espérons que cela aide.

5
répondu Eddy R. 2015-08-06 18:53:58