Wie man alle gelöschten, geänderten und erstellten Dateien seit dem letzten Git-Commit öffnet, habe ich versucht mit git status
zuerst, aber es war schwierig zu analysieren, so fand ich git status --porcelain
war einfacher zu analysieren und mit awk + vim + etwas Bash-Magie war es einfach zu tun.
Wie öffne ich alle geänderten Dateien mit Git?
Dorian
Dorian
Also ich habe die Lösung mit gefunden vim
:
vim $(git status --porcelain | awk '{print $2}')
Und ich poste diese Frage + Antwort, nur um sie selbst zu beantworten und im Internet zu teilen
-
Backticks sind veraltet
– Benutzer4453924
2. Februar 2015 um 15:44 Uhr
-
@HolgerJust Sie haben eine Antwort zu diesem Thema zitiert, die nichts wirklich beweist. Aber unabhängig davon, auch wenn sie nicht veraltet sind, sind sie veraltet und haben absolut keinen Vorteil mehr
$()
wohingegen$()
hat viele Vorteile für sie. Der einzige Grund, sie jemals zu verwenden, ist die Kompatibilität mit einer alten Bourne-Muschel. Auch wenn Sie den obersten Kommentar zu diesem Beitrag lesen, bin ich derselben Meinung.– Benutzer4453924
2. Februar 2015 um 15:55 Uhr
-
Versuchen
git ls-files -o -m --exclude-standard
als git-Befehl. Es enthält neue Dateien und erfordert keinen awk-Schritt.– Ruuter
13. Januar 2018 um 15:51 Uhr
-
Alternative zum Befehl von @ruuter
git diff HEAD --name-only
listet zwischengespeicherte und nicht zwischengespeicherte Änderungen auf– con–
9. April 2019 um 8:56 Uhr
-
vim $(git status --porcelain -s | awk '{print $2}')
Wenn Sie sich im Unterordner befinden.– prähistorischer Pinguin
22. April 2021 um 6:30 Uhr
Davon bloggenkönnen Sie bearbeiten ~/.gitconfig
und füge diese Zeile hinzu:
[alias]
edit = !$EDITOR $(git status --short | awk '$1 ~ /^M|A|U/ {print $2}' )
Jetzt, git edit
öffnet alle geänderten Dateien
-
Verwenden
--porcelain
ist wahrscheinlich besser, weil die Ausgabe unabhängig von Ihrer Konfiguration gleich ist, …– edi9999
27. August 2015 um 8:57 Uhr
-
@edi9999
--porcelain
ist nicht relativ zum aktuellen Arbeitsverzeichnis, was ein triftiger Grund für die Verwendung sein kann--short
stattdessen.– Andi E
1. September 2015 um 16:07 Uhr
-
+1 für Git-Alias, aber für Git-Befehl würde ich lieber verwenden
git ls-files -o -m --exclude-standard
das auch neue Dateien enthält und keinen awk-Schritt erfordert.– Ruuter
13. Januar 2018 um 15:49 Uhr
-
ich benutzte
!$EDITOR $(git d $1 --name-only)
als Alias, mit dem Sie Dateien öffnen können, die sich von anderen benannten Zweigen unterscheiden, oder zu HEAD, wenn Sie das Feld leer lassen– lächelnder Frosch
11. Juli 2020 um 23:01 Uhr
Damit dies funktioniert, wenn ich mich in einem Unterordner des Git-Repos befinde, verwende ich einfach die Option -s für den Git-Status. Die Vim-Option -O öffnet die Dateien in vertikaler Aufteilung.
vim -O $(git status -s | awk '{print $2}')
-
Sie möchten die verwenden
-p
Flagge statt-O
im vim-Befehl, um sie in Tabs zu öffnen, denn wenn Sie mehr als 2 modifizierte Dateien haben, wird Ihr vim-Bildschirm mit Divisionen gruppiert.– betoharres
9. Mai 2017 um 23:12 Uhr
-
Das ist sehr praktisch!
– prähistorischer Pinguin
22. April 2021 um 6:25 Uhr
git ls-files --modified --deleted --others -z | xargs -0 vim
Was bedeutet es überhaupt, eine gelöschte Datei zu öffnen?
– abschalten
2. Februar 2015 um 15:34 Uhr
z.B:
a.rb
wurde gelöscht,vim a.rb
öffnet eine leere Datei, beim Speichern wird eine leere Datei erstellt, nichts zu tun ist nützlich, um nur zu bemerken, dass die Datei gelöscht wurde– Dorian
2. Februar 2015 um 17:53 Uhr