J'ai une branche git (appelée v4), qui a été créée à partir de master hier. Il y a eu quelques changements à maîtriser, que je veux entrer dans la v4. Donc, dans la v4, j'ai essayé de faire un rebase à partir de master, et un fichier n'arrête pas de bousiller les choses: un fichier texte d'une ligne, qui contient le numéro de version. Ce fichier est app/views/common/version.txt
, qui avant le rebasage contient ce texte:
v1.4-alpha-02
Voici ce que je fais:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
Le version.txt
ressemble maintenant à ceci:
<<<<<<< HEAD:app/views/common/version.txt
v1.4-alpha-02
=======
v1.4-alpha-01
>>>>>>> new version, new branch:app/views/common/version.txt
Alors, je le range et ça ressemble à ceci maintenant:
v1.4-alpha-02
puis j'ai essayé de continuer: au début j'essaye un commit:
> git commit -a -m "merged"
# Not currently on any branch.
nothing to commit (working directory clean)
Pas de chance là-bas. Donc, j'essayais d'ajouter le fichier:
git add app/views/common/version.txt
Pas de réponse. Aucune nouvelle n'est une bonne nouvelle, je suppose. Alors, j'essaye de continuer:
> git rebase --continue
Applying: new version, new branch
No changes - did you forget to use 'git add'?
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
C'est à ce stade, après avoir tourné en rond avec ça, que je me cogne la tête du bureau.
Que se passe t-il ici? Qu'est-ce que je fais mal? Quelqu'un peut-il me remettre en ordre?
EDIT - pour unutbu
J'ai changé le fichier comme vous l'avez suggéré et j'obtiens la même erreur:
> git rebase master
First, rewinding head to replay your work on top of it...
Applying: new version, new branch
error: patch failed: app/views/common/version.txt:1
error: app/views/common/version.txt: patch does not apply
Using index info to reconstruct a base tree...
Falling back to patching base and 3-way merge...
Auto-merging app/views/common/version.txt
CONFLICT (content): Merge conflict in app/views/common/version.txt
Failed to merge in the changes.
Patch failed at 0001 new version, new branch
When you have resolved this problem run "git rebase --continue".
If you would prefer to skip this patch, instead run "git rebase --skip".
To restore the original branch and stop rebasing run "git rebase --abort".
git rebase master
et laissez-le échouer ; 2) puis vous éditez version.txt
et faites comme il devrait regarder à ce point, et enregistrez l'édition; 3) puis vous git add .../version.txt
; 4) alors vous faites git rebase --continue
( pas 'commit' )! S'il rebase --continue
réussit ici, il est déjà validé (pas besoin git commit
ici!) - il ne reste donc plus qu'à git push
(si vous utilisez un dépôt distant). J'espère que cela aide, si j'ai bien compris :)
- bravo!