Eine verwandte Frage How do you stash an untracked file? wurde mit "track the file" beantwortet. Dies funktioniert jedoch nicht für meine speziellen Bedürfnisse.git: Kann ich eine nicht verfolgte Datei speichern, ohne sie dem Index hinzuzufügen?
Ich versuche, alles, was nicht im Index ist mit git stash save --keep-index
zu verstauen, so dass ich den Index in meinem Pre-Commit Hook validieren kann. Die Idee stammt aus dem Beispiel "Testing partially commits" der git-stash man-Seite. Ich möchte sicherstellen, dass das, was ich tatsächlich begehe, die Tests besteht und nicht nur, was im Arbeitsverzeichnis steht. Hier ist, was ich bisher:
echo "Running tests on the staging area."
git stash save --keep-index
# configure, build, run tests, clean
git stash pop; true
Dies scheint zu funktionieren, bis ich untracked Dateien in meinem Arbeitsverzeichnis haben die verstaute nicht bekommen. Einige Suchvorgänge führten zu einer Feature-Anfrage von vor zwei Jahren: Option to save untracked and/or ignored files in stash, aber sonst nichts.
Sollte ich Stash überhaupt verwenden? Vielleicht gibt es einen besseren Weg mit temporären Filialen oder etwas.
Ich nehme an, meine Definition von "Arbeitsverzeichnis" unterscheidet sich von der der Git-Entwickler. Ich habe mein Problem gelöst, indem ich git-checkout-index in ein temporäres Verzeichnis eingefügt und dort erstellt habe. Ich würde trotzdem lieber Git-Stash verwenden, wenn möglich. –
Das ist definitiv eine seltsame Definition von "Arbeitsverzeichnis". Ich würde auch neue Dateien als Teil meines Arbeitsverzeichnisses betrachten. – allyourcode