Mon problème
J'ai travaillé sur un dépôt git. Avant de publier mes modifications, je voudrais supprimer certains commits - a023b43
, 315424b
y 7b51754
- car ils ne reflètent pas de changements significatifs. Les seuls points importants dans le temps sont les premiers ( 70f72ca
) et le dernier ( 6937ddd
) commits.
Qu'est-ce que j'ai essayé ?
git rebase -i 4c802c1
J'ai choisi :
pick 70f72ca Remove repetitions from Makefile
d a023b43 Separate target for image conversion
d 315424b Remove image conversion (#1)
d 7b51754 Fix Makefile
pick 6937ddd CV 2019.01
L'objectif final est d'avoir un journal git qui ressemble à ça :
6937ddd CV 2019.01
4c802c1 Initial commit
Ce qui n'a pas marché
Auto-merging src/Adam_Matan.tex
CONFLICT (content): Merge conflict in src/Adam_Matan.tex
error: could not apply 6937ddd... CV 2019.01
Resolve all conflicts manually, mark them as resolved with
"git add/rm <conflicted_files>", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 6937ddd... CV 2019.01
Si je comprends bien, les deux commits sont juste des instantanés de mon répertoire de travail. Je veux avoir deux instantanés - le commit d'origine et le CV 2019.01
un. Je ne veux pas les fusionner ou les combiner de quelque manière que ce soit. Pourquoi est-ce que je reçois un message de conflit de fusion ?
Ma question
Comment puis-je supprimer tous les commits intermédiaires d'une branche, et ne laisser que le premier et le dernier commits ?
Mise à jour
L'écrasement crée également des conflits de fusion :
git rebase -i 4c802c1
Auto-merging Makefile
CONFLICT (content): Merge conflict in Makefile
error: could not apply 315424b... Remove image conversion (#1)