Information

Author(s) Mathieu Jadin
Deadline Καμία προθεσμία
Submission limit No limitation

Συνδεθείτε

Scénario Catastrophe Git 1 - Annuler un commit non pushé

L'intérêt de conserver un historique est de pouvoir revenir en arrière si on se trompe. Par exemple:

https://inginious.org/course/git/git_catastrophy_scenario_1/git-error.svg

Dans le cas où le commit n'est pas encore poussé sur le repository distant, c'est facile. Vous pouvez reset ou revert les modifications.

La première méthode va supprimer le(s) commit(s) de l'historique. Elle n'est valide que si vous voulez effacer les derniers commits mais elle est plus propre. Notez que cette commande peut modifier le code si vous utiliser l'option --hard (donc faites attention quand vous l'utiliser).

https://inginious.org/course/git/git_catastrophy_scenario_1/git-reset.svg

Maintenant imaginons que votre modification foireuse se trouve au milieu de commits valides.

https://inginious.org/course/git/git_catastrophy_scenario_1/git-error-middle.svg

Dans ce cas, la meilleure option est d'utiliser revert pour annuler le commit foireux. En effet, ça va créer un commit supplémentaire qui va annuler les modifications du commit foireux. Notez que vous ne devez avoir aucune modification qui n'est pas dans l'historique local pour que ça marche.

https://inginious.org/course/git/git_catastrophy_scenario_1/git-revert.svg

Les commandes bash correspondantes sont git reset (documentation) et git revert (documentation).


Question 1: Reset un commit

Téléchargez l'archive qui contient déjà un repository cloné dans le sous-dossier clone. Utilisez un reset pour retirer le dernier commit sans supprimer les modifications dans le code ou la staging zone. Une fois que c'est fait, ré-archivez le dossier complet et uploadez-le.

Votre soumission devra avoir l'architecture suivante:

git-reset-local/
├── bare.git/
|   └── [...]
└── clone/
    └── [...]

Max file size: 1.0 MiB
Allowed extensions: .zip
Question 2: Revert un commit

Téléchargez l'archive qui contient déjà un repository cloné dans le sous-dossier clone. Utilisez un revert pour annuler l'avant-dernier commit sans supprimer le dernier. Une fois que c'est fait, ré-archivez le dossier complet et uploadez-le.

Le message de commit devra être "REVERT".

Votre soumission devra avoir l'architecture suivante:

git-revert-local/
├── bare.git/
|   └── [...]
└── clone/
    └── [...]

Max file size: 1.0 MiB
Allowed extensions: .zip