git rebase avec conflit ne fonctionne pas
J'ai référentiel distant.
Je n':
git clone https://[email protected]/mylogin/myrepo.git
Clone succès.
J'ai arbre git:
C(master)
| B:
| /
B /
|
Une
|
A0
|
A01(origine/tête)(origin/master)
|
(certains s'engage)
J'ai besoin de:
B:
C(master) /
J'ai besoin de rebase de la branche B à C(master)
Ce que je fais:
git checkout b1
Switched to branch 'b1'
git rebase master
First, rewinding head to replay your work on top of it...
Applying: B:A
Using index info to reconstruct a base tree...
M index1.txt
Falling back to patching base and 3-way merge...
Auto-merging index1.txt
CONFLICT (content): Merge conflict in index1.txt
Failed to merge in the changes.
Patch failed at 0001 B:A
The copy of the patch that failed is found in:
/pth/to dir/.git/rebase-apply/patch
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
git branch
* (no branch)
b1
master
Que dois-je faire?
Je peux passer dans la branche b1, résoudre les conflits et de s'engager, mais il aide pas (je l'ai testé).
source d'informationauteur DenisOgr | 2013-10-18
Vous devez vous connecter pour publier un commentaire.
Git va arrêter de rebasage si il détecte les conflits, il ne peut pas résoudre automatiquement. Dans votre cas, vous avez un conflit dans le fichier
index1.txt
(vous pouvez le voir dans la sortie, et plus tard en tant que bien lors de l'exécution degit status
). Vous devez résoudre les conflits avant de continuer. Modifier le fichier, et vous verrez<<<<<<
======
et>>>>>>
marqueurs. Le conflit est dans ces lignes, où ce qui est entre les<
et la=
les changements en maître, et après que (jusqu'à ce que le>
) les changements dans la direction de lab1
. De le corriger, supprimer le git marqueurs (<
,=
,>
), puis de lancergit add index1.txt
et de passer au fichier suivant (si vous en avez, dans cet exemple, seuleindex1.txt
conflits). Une fois que vous avez terminé l'ajout de tous les fichiers, d'exécutergit rebase --continue
. Si git rencontre un autre conflit, il suffit de répéter le processus pour chaque fichier(s) il a des problèmes avec. Une fois que vous avez terminé, git va vous dire que cela s'est achevée avec succès, et vous serez de retour sur la brancheb1
. Si vous voulez arrêter le processus et de revenir à l'originalb1
(avant la commande rebase), il suffit de lancergit rebase --abort
.Rappelez-vous que lorsque vous réparez les conflits, ne pas modifier le fichier comme il se doit dans votre dernier commit, plutôt que d'introduire les modifications que vous avez voulu pour le commettre. D'autres changements seront ajoutés comme git continue la relocalisation et l'application de vos commits.