Wie öffne ich alle geänderten Dateien mit Git?

Lesezeit: 3 Minuten

Benutzer-Avatar
Dorian

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.

  • 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

Benutzer-Avatar
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-standarddas 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

1054920cookie-checkWie öffne ich alle geänderten Dateien mit Git?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy