Eine alternative Lösung besteht darin, die Änderungen festzuschreiben und diese Festschreibungen dann zu entfernen. Dies hat zunächst keinen unmittelbaren Vorteil, eröffnet jedoch die Möglichkeit, in Blöcken festzuschreiben und ein Git-Tag für die Sicherung zu erstellen.
Sie können dies im aktuellen Zweig folgendermaßen tun:
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^^
Oder Sie können es auf freistehendem KOPF tun. (Vorausgesetzt, Sie starten im BRANCHNAME-Zweig):
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
Normalerweise schreibe ich jedoch in Blöcken fest und benenne dann einige oder alle Festschreibungen als "DISCARD: ...". Verwenden Sie dann die interaktive Rebase, um die schlechten Commits zu entfernen und die guten beizubehalten.
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".
Dies ist ausführlicher, ermöglicht es jedoch, genau zu überprüfen, welche Änderungen Sie verwerfen möchten.
Die git lol
undgit lola
Verknüpfungen waren bei diesem Workflow sehr hilfreich.
git help reset
undgit help clean