În momentul în care rulez git status
, am primit
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
Vreau să curăț rezultatul pentru a elimina modified:
și fișierele
loanwolf/requests/models.py loanwolf/customers/models.py loanwolf/requests/locale/fr/LC_MESSAGES/django.po
De fapt, vreau să păstrez tot fișierul, cu excepția ultimelor trei. Cum aș putea face asta?
Pentru moment, cred că aș putea face git status | grep -v "request"
. Vreau să git checkout
toate fișierele, cu excepția celor trei fișiere.
git status | grep "modified:" | awk "{print $2}" | xargs git [diff|add|checkout]
????
Comentarii
- Cum alegeți cele 3 fișiere ??
- stackoverflow.com / questions / 38328065 / … … Cred că am putea face asta.
Răspuns
Aș face acest lucru:
-
comite fișierele pe care doriți să le păstrați (temporar)
git commit -m WIP loanwolf/requests/models.py loanwolf/customers/models.py loanwolf/requests/locale/fr/LC_MESSAGES/django.po
-
verifică orice altceva
git checkout .
-
reset pentru a anula validarea (aceasta nu va pierde nicio modificare)
git reset HEAD^1
Dacă doriți să jucați cu git status
, verificați git status -s
, rezultatul său este mai ușor de procesat în mod fiabil.
Comentarii
- Probabil ați putea folosi și o " stash "? ' am făcut asta eu însumi, dar numai o dată sau de două ori cu un GUI. În principiu, înseamnă că ' ascundeți un anumit fișier pentru o vreme, apoi trageți cele mai recente confirmări, apoi aplicați fișierele ascunse în depozit.
- @Kusalananda o stash ar fi mai convenabilă, dar
git stash
stochează starea completă a spațiului de lucru, nu poate filtra (AFAIK). Ai dreptate, totuși, că utilizarea mea a unui commit aici este mai degrabă asemănătoare cu un stash decât un commit corect. Unele GUI au variante ascunse care acceptă filtrarea, și acestea ar funcționa.