Ответ 1
Вы не можете сделать это с помощью git status
, но вы можете использовать git ls-files -m
для отображения всех измененных файлов.
Возможно ли git status
показать только измененные файлы?
Проблема в том, что у меня слишком много поэтапных файлов, которые я не хочу совершать, или gitignore на данный момент, и я не могу прокручивать вверх. У меня есть ограничение на прокрутку на Ubuntu.
Вы не можете сделать это с помощью git status
, но вы можете использовать git ls-files -m
для отображения всех измененных файлов.
Похоже, что git status -uno
покажет вам только файлы, которые git отслеживает, не показывая ничего в каталоге. Не совсем то, что вы просили, но, возможно, выполняет одно и то же (получение списка файлов с возможностью чтения с длиной git).
git status -s | awk '{if ($1 == "M") print $2}'
Для измененных файлов:
git status | grep modified:
git diff --name-only --diff-filter=M
git diff --name-only
тоже работает.
Я искал ту же информацию и нашел следующие дает измененные файлы:
git status -uno
Чтобы просмотреть измененные файлы, используйте:
git ls-files -m
Если вы хотите просто базовое имя (нет пути), вы можете передать каждый результат команде basename с помощью xargs, строка за строкой:
git ls-files -m | xargs -L 1 basename
Проблема в том, что у меня слишком много промежуточных файлов, которые я не хочу коммитить или gitignore в данный момент, и я не могу прокрутить вверх.
Хотя это может не дать прямого ответа на вопрос о перечислении только измененных файлов, это может помочь ограничить число файлов в списке.
Вы можете передать путь к git status
чтобы ограничить вывод определенной папкой в репо.
Например:
git status app
git status spec
git status src/components
Ты можешь использовать
$ git status -uno
перечислить только измененные файлы.
Я использую git cola
. Его простой и элегантный пользовательский интерфейс, который покажет вам измененные файлы и предоставит вам разный снимок сделанных вами изменений.
git cola
предоставляет вам графический интерфейс, в котором вы можете визуализировать, какие файлы вы изменили, какие вы поставили, и даже те, которые вы не отслеживаете. Ваш вопрос состоял в том, чтобы использовать статус git, только я верю, но я подумал, что git кола может помочь, когда это и другие вещи. Проверьте эту веб-страницу из дополнительной информации: git-cola.github.com/screenshots.html
Если вы хотите перечислить файлы измененные, вы можете сделать это:
git log -n1 --oneline --name-status | grep '^M'
Для просмотра всех измененных файлов используйте:
git show --stat --oneline HEAD
Все отличные ответы; просто FEI, "git checkout" (переключение в или в ту же ветку), по-видимому, показывает только измененные файлы.
Следующая команда отобразит все строки, содержащие "Изменено:", "переименовано:" или "новый файл:"
git status | findstr "modified: renamed: new file:"
Если вы хотите указать тип файла: (например, *.py
*.ini
)
git status *.py *.ini | findstr "modified: renamed: new file:"
Если вы думаете, что слишком много печатать так:
создать пакетный файл (например: st.bat
)
напишите содержание следующим образом:
@echo off
:: st.bat (this line does not necessarily. ( just let you know the scripts name.))
git status %~1 | findstr "modified: renamed: new file:"
добавить путь к среде, в которой содержится ваш командный файл. (st.bat
)
использование
st.bat "*.py *.ini"
(примечание: если тип> 1, необходимо добавить точку с запятой)
как @Lance говорит, что вы можете попробовать
git status | grep modified: