In dem Moment, in dem ich git status
ausführe, habe ich
modified: loanwolf/alerts/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/alerts/locale/fr/LC_MESSAGES/django.po modified: loanwolf/clientspace/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/clientspace/locale/fr/LC_MESSAGES/django.po modified: loanwolf/configurations/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/configurations/locale/fr/LC_MESSAGES/django.po modified: loanwolf/contracts/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/contracts/locale/fr/LC_MESSAGES/django.po modified: loanwolf/contrib/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/contrib/locale/fr/LC_MESSAGES/django.po modified: loanwolf/core/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/core/locale/fr/LC_MESSAGES/django.po modified: loanwolf/core/templatetags/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/core/templatetags/locale/fr/LC_MESSAGES/django.po modified: loanwolf/customers/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/customers/locale/fr/LC_MESSAGES/django.po modified: loanwolf/customers/models.py modified: loanwolf/dashboard/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/dashboard/locale/fr/LC_MESSAGES/django.po modified: loanwolf/documents/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/documents/locale/fr/LC_MESSAGES/django.po modified: loanwolf/employees/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/employees/locale/fr/LC_MESSAGES/django.po modified: loanwolf/equifax_report/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/equifax_report/locale/fr/LC_MESSAGES/django.po modified: loanwolf/loans/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/loans/locale/fr/LC_MESSAGES/django.po modified: loanwolf/messaging/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/messaging/locale/fr/LC_MESSAGES/django.po modified: loanwolf/notes/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/notes/locale/fr/LC_MESSAGES/django.po modified: loanwolf/operations/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/operations/locale/fr/LC_MESSAGES/django.po modified: loanwolf/perception/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/perception/locale/fr/LC_MESSAGES/django.po modified: loanwolf/products/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/products/locale/fr/LC_MESSAGES/django.po modified: loanwolf/requests/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/requests/locale/fr/LC_MESSAGES/django.po modified: loanwolf/requests/models.py modified: loanwolf/statistics/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/statistics/locale/fr/LC_MESSAGES/django.po modified: loanwolf/users/locale/fr/LC_MESSAGES/django.mo modified: loanwolf/users/locale/fr/LC_MESSAGES/django.po
Ich möchte die Ausgabe bereinigen, um modified:
und die Dateien
loanwolf/requests/models.py loanwolf/customers/models.py loanwolf/requests/locale/fr/LC_MESSAGES/django.po
Tatsächlich möchte ich die gesamte Datei außer den letzten drei behalten. Wie könnte ich das machen?
Im Moment denke ich, ich könnte git status | grep -v "request"
tun. Ich möchte git checkout
alle Dateien außer diesen drei Dateien.
git status | grep "modified:" | awk "{print $2}" | xargs git [diff|add|checkout]
????
Kommentare
- Wie wählen Sie diese 3 Dateien aus?
- stackoverflow.com / question / 38328065 / … … Ich denke, wir könnten das tun.
Antwort
Ich würde so vorgehen:
-
Festschreiben der Dateien, die Sie (vorübergehend) behalten möchten
git commit -m WIP loanwolf/requests/models.py loanwolf/customers/models.py loanwolf/requests/locale/fr/LC_MESSAGES/django.po
-
alles andere überprüfen
git checkout .
-
zurücksetzen um das Commit rückgängig zu machen (dies verliert keine Änderungen)
git reset HEAD^1
Wenn Sie mit git status
, check git status -s
aus, die Ausgabe ist einfacher zuverlässig zu verarbeiten.
Kommentare
- Sie könnten wahrscheinlich auch einen " -Stash " verwenden? Ich habe das ' selbst gemacht, aber nur ein- oder zweimal mit einer GUI. Dies bedeutet im Grunde, dass Sie ' eine Datei für eine Weile verstauen, dann die neuesten Commits abrufen und die verwahrten Dateien auf das Repository anwenden.
- @Kusalananda Ein Stash wäre bequemer, aber
git stash
speichert den vollständigen Arbeitsbereichsstatus und kann nicht gefiltert werden (AFAIK). Sie haben jedoch Recht, dass meine Verwendung eines Commits hier eher einem Stash als einem richtigen Commit ähnelt. Einige GUIs haben Stashing-Varianten, die das Filtern unterstützen. Diese funktionieren auch.