Як зробити так, щоб статус git відображав лише інсценізовані файли


86

Я хотів би отримати список лише поетапних імен файлів. Я не можу знайти еквівалентний прапор --name-onlyдля git statusкоманди. Яка хороша альтернатива?

Список файлів буде перенесено до php -l(PHP перевірка синтаксису тексту).

Рішення: повна команда

git diff --name-only --cached | xargs -l php -l

3
Якщо ви виконуєте цю команду вручну, схоже, ви можете помістити її в гачок попереднього фіксації. kernel.org/pub/software/scm/git/docs/githooks.html
MatrixFrog

Відповіді:



12

Прийнята відповідь не дасть вам знати, які зміни відбулися.

Так, якщо ви не перевіряєте синтаксис, а звичайна людина зі сховищем, заповненим нестадійними файлами, і ви все одно хочете знати, що буде з індексованими файлами - є ще одна команда:

git status --short | grep '^[MARCD]'

що призводить до приблизно такого:

M  dir/modified_file
A  dir/new_file
R  dir/renamed -> dir/renamed_to
C  dir/copied_file
D  dir/deleted_file

Очевидно, що ці файли були інсценізовані, а після git commit:
deleted_fileбуде видалено,
new_fileдодано,
renamed_fileстане renamed_to.

Ось пояснення короткоформатного виводу: https://git-scm.com/docs/git-status#_short_format


1. у моїй версії (2.25.0.windows.1) є пробіл перед "M" і "D". 2. Існує також інший стан - "??" що я не знаю, як інтерпретувати.
іто

@itsho пробіл вказує, що він не інсценований. Ця відповідь правильна, оскільки вона відповідає першому символу в рядку. Якщо встановлено перший символ, це поетапний файл. Якщо це пробіл, він ігнорується.
Авнер

1
Це геній! - для подібного повинен бути прапор git
Норфельдт,

3

Натхненний відповіддю @ coffman21 , я встановив наступний псевдонім у своєму.zshrc

alias gst="git status"
alias gst-staged="git status --short | grep '^\w'"
alias gst-unstaged="git status  --short | grep '^\W'"
alias gst-unstaged-tracked="git status  --short | grep '^\s'"
alias gst-untracked="git status --short | grep '^??'"

Це може бути корисним для будь-кого іншого. Тож додайте його до стопки відповідей.


для послідовного фарбування ви можете додати .в Grep, щоб колір як 2 початкових символів, як: grep '^\w.', grep '^\W.',grep '^\s.'
geekley

0

для перегляду поетапних файлів із змінами коду

git diff --staged   

або використовуючи --cached, що є синонімом --staged

git diff --cached

або переглядати лише імена файлів без змін коду

git diff --staged --name-only  

git-diff посібник

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.