Une autre solution consiste à valider les modifications, puis à supprimer ces validations. Cela n'a pas un avantage immédiat au début, mais cela ouvre la possibilité de valider en morceaux et de créer une balise git pour la sauvegarde.
Vous pouvez le faire sur la branche actuelle, comme ceci:
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git revert HEAD
git reset HEAD^^
Ou vous pouvez le faire sur la tête détachée. (en supposant que vous commenciez sur la branche BRANCHNAME):
git checkout --detach HEAD
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git checkout BRANCHNAME
Cependant, ce que je fais habituellement, c'est de commettre par morceaux, puis de nommer certains ou tous les commits comme "DISCARD: ...". Utilisez ensuite un rebase interactif pour supprimer les mauvais commits et conserver les bons.
git add -p # Add changes in chunks.
git commit -m"DISCARD: Some temporary changes for debugging"
git add -p # Add more stuff.
git commit -m"Docblock improvements"
git tag archive/local-changes-2015-08-01
git rebase -i (commit id) # rebase on the commit id before the changes.
# Remove the commits that say "DISCARD".
C'est plus détaillé, mais cela permet de revoir exactement les changements que vous souhaitez supprimer.
Les raccourcis git lol
etgit lola
ont été très utiles avec ce flux de travail.
git help reset
etgit help clean