Oft finde ich, dass ich Arbeitsstatus in einem Git-Baum ohne commits/branches mit git diff
und Pastebins, E-Mail, etc. teilen möchten. Dies funktioniert gut, wenn alle Änderungen Änderungen an bereits sind- verfolgte Dateien, aber nicht, wenn neue Dateien beteiligt sind. Ich kann git add -N
verwenden, um eine leere verfolgte Datei zu diff hinzuzufügen, aber das ist problematisch, wenn ich andere Dinge vor den Änderungen in Frage begehe (oder wenn die Änderungen in Frage nur Müll sind, den ich wegwerfen will). Gibt es eine einfache Möglichkeit, Diffs zu bekommen, um neue Dateien mit git diff
hinzuzufügen, ohne ihren Status im Repository zu ändern? Bisher habe ich ein hässliches Skript:Erstellen git diff für neue nicht verdeckte Dateien
for i in "[email protected]" ; do diff -u /dev/null "$i" | sed -e '[email protected]^+++ @+++ b/@ ; done
Ist das der beste Weg?
ich zu alternativen Lösungen nicht ganz im Gegensatz bin, der den git Zustand ändern, solange es leicht zu genau den Zustand zurückzukehren, bevor die Änderung vorgenommen (zB mit verschiedenen Dateien modifizieren, inszenierten einige Änderungen, etc.)
Das mag zu einfach sein, aber ich würde einfach 'add' vor 'git diff' hinzufügen. Dann 'git reset ', um es wieder zu tracken und du bist zurück, wo du angefangen hast. –
omnikron
@omnikron: Die Dateien, für die ich Diffs haben möchte, sind noch nicht inszeniert, also müsste man 'git diff --cached' verwenden. Wenn ich es mit 'git add -N hinzufügen, dann benutze' git reset', ist das sicher, oder könnte es die nicht geordnete Datei zerstören? –
'Git reset' zerstört nichts in Ihrem Arbeitsverzeichnis, es sei denn, Sie führen es mit' --hard' Argument. – dizballanze