Je souhaite remplacer mon référentiel local git par le référentiel vers lequel je suis passé.

2

Je ne veux pas fusionner parce que c'est le problème.

Disons que mon référentiel ressemble à ceci: (les lettres sont des commits)

A B C D E F G

"A" est la tête. Et j'ai deux commits ('E' et 'C' dont je veux me débarrasser). Si je supprime simplement ces deux commits, j'obtiens alors deux commits supplémentaires en me disant que j'ai annulé deux commits. Je ne veux pas ça. Je veux que mon référentiel ressemble exactement au référentiel distant auquel je suis assigné.

Le problème est que je ne peux effectuer aucun travail, car chaque fois que je pousse un commit, cela pousse également les commits 'E' et 'C'.

J'ai besoin d'aide. J'ai fait d'innombrables recherches et chaque réponse que je trouve est une solution abstraite / série de commandes sans explication et je ne peux pas dire si c'est ce dont j'ai besoin.

Pinkerton
la source

Réponses:

0

As-tu essayé:

git rebase -i A

Et écarter les commits C et E

Vous pouvez avoir un problème bien que, comme vous les avez déjà poussés sur la télécommande, vous ne pouvez pas vraiment réécrire l’historique si vous avez déjà poussé sur une télécommande. Je veux dire, vous pouvez le faire, mais les personnes qui ont tiré après que vous ayez poussé auront un problème, car tout à coup leur histoire n’est plus la même que l’histoire lointaine.

Peter van der Does
la source