Czy można git status
wyświetlać i wyświetlać tylko zmodyfikowane pliki?
Problem polega na tym, że mam zbyt wiele plików w fazie przejściowej, których nie chcę w tej chwili zatwierdzać ani gitignore i nie mogę przewijać w górę. Mam ustawiony limit przewijania w systemie Ubuntu.
git status
wywoła pager.--short
lub,--porcelain
aby uzyskać jednowierszowe wersje statusu.git ls-files -m
: które modyfikacje Cię interesują, wystawiane, niestacjonarne czy jedno i drugie?Odpowiedzi:
Nie możesz tego zrobić
git status
, ale możesz użyćgit ls-files -m
do pokazania wszystkich zmodyfikowanych plików.źródło
git status | grep modified
tak, jak wskazuje user23186 w swojej odpowiedzi.git ls-files -m
nic nie pokazuje, alegit status | grep modified
działa.git diff --name-only --diff-filter=M HEAD
pokaże tylko zmodyfikowane pliki, zarówno dla etapów, jak i niestacjonarnych, chociaż powinieneś sprawdzić dokumentację,--diff-filter
aby zobaczyć, jakie inne typy filtrów chcesz dodać.Wygląda na to,
git status -uno
że pokaże tylko pliki, które śledzi git, bez pokazywania niczego innego w katalogu. Nie jest to dokładnie to, o co prosiłeś, ale być może daje to samo (uzyskanie czytelnej listy plików, które śledzą git).źródło
git status -u no
nie pokazuje (1) śledzonych plików, które są modyfikowane, ani (2) śledzonych plików, które są przemieszczane. Sprawdziłem to w wersjach git 1.8.5.2 i 1.9.4.git status -uno
( stackoverflow.com/questions/7008546/ ... )źródło
awk '$1 == "M" { print $2 }'
W przypadku zmodyfikowanych plików:
źródło
git config --global alias.modified '!git status | grep modified:'
git diff --name-only --diff-filter=M
źródło
git diff --cached --name-only --diff-filter=ACMR
co oznacza pliki dodane, skopiowane, zmodyfikowane i zmienione.git diff --name-only
działa też.źródło
Szukałem tych samych informacji i znalazłem następujące podaje zmodyfikowane pliki:
źródło
git status -uno --porcelain
dodaje ładne wyjście dla parsowania skryptuMożesz użyć
aby wyświetlić tylko zmodyfikowane pliki.
źródło
Chociaż może to nie odpowiadać bezpośrednio na pytanie o wyświetlanie tylko zmodyfikowanych plików, może pomóc ograniczyć liczbę plików, które są na liście.
Możesz przekazać ścieżkę do,
git status
aby ograniczyć dane wyjściowe do określonego folderu w repozytorium.Na przykład:
źródło
Aby wyświetlić listę zmodyfikowanych plików, użyj:
Jeśli chcesz tylko nazwę basename (bez ścieżki), możesz przesłać każdy wynik do polecenia basename za pomocą xargs, linia po linii:
źródło
Używam tego polecenia:
Wynik wygląda następująco:
źródło
Używam
git cola
. Jest to prosty i elegancki klient interfejsu użytkownika, który pokaże zmodyfikowane pliki i zapewni porównanie zmian, które wprowadziłeś.git cola
zapewnia graficzny interfejs użytkownika, w którym możesz wizualizować zmodyfikowane pliki, które przygotowałeś, a nawet te, których nie śledzisz. Twoje pytanie dotyczyło używania statusu git tylko moim zdaniem, ale pomyślałem, że git cola może pomóc, gdy to i inne rzeczy też. Sprawdź tę stronę internetową, aby uzyskać więcej informacji: git-cola.github.com/screenshots.htmlźródło
Jeśli chcesz wyświetlić listę zmodyfikowanych plików, możesz to zrobić:
git log -n1 --oneline --name-status | grep '^M'
źródło
Aby wyświetlić listę wszystkich zmodyfikowanych plików, użyj:
źródło
Wszystkie świetne odpowiedzi; po prostu FEI, "git checkout" (przełączanie do lub w tej samej gałęzi) wydaje się pokazywać tylko zmodyfikowane pliki.
źródło
System operacyjny: windows
Następujące polecenie wyświetli wszystkie wiersze zawierające „zmodyfikowano:” , „zmieniono nazwę:” lub „nowy plik:”
Jeśli chcesz określić typ pliku: (na przykład
*.py
*.ini
)Jeśli uważasz, że pisanie jest zbyt trudne:
utwórz plik wsadowy (na przykład
st.bat
:)zapisz zawartość w następujący sposób:
dodaj ścieżkę środowiska zawierającą plik wsadowy. (
st.bat
)stosowanie
(uwaga: jeśli typ> 1, należy dodać średnik)
System operacyjny: LINUX
jak mówi @Lance, możesz spróbować
git status | grep modified:
źródło