Подтвердить что ты не робот

Как я могу перечислить только файлы, которые будут переданы?

Есть ли способ получить список файлов, которые будут зафиксированы при вводе следующего?

git commit -m "my changes"

git списки состояний слишком много. Я мог бы вычеркнуть все слова, но я бы предпочел. И я не хочу, чтобы мне рассказывали о невоспроизводимых файлах.

Я пробовал

git ls-files -md

но это не показывает файлы, которые были недавно добавлены, но еще не выполнены.

Я ищу тот же результат, который вы получили от

svn status -q

Например $ svn status -q
Файл file.py
M dir/database.py
M start.py

4b9b3361

Ответ 1

Это то, что я искал. Спасибо notnoop за лидерство, в котором я нуждался. Я хотел бы опубликовать свое решение, если оно помогает другим.

git diff HEAD  --name-only

Поскольку я намеревался сделать

git commit -s -F mesage.txt

с файлами, найденными в первой строке.

Я намерен создать небольшую систему, полностью игнорирующую индекс, т.е. мне никогда не нужно делать git add. (Насколько я понимаю, индекс полезен при создании патчей, что отнюдь не является нормой в моем рабочем процессе.)

Ответ 2

Эта команда сообщит вам, какие файлы в вашем индексе/кеше/промежуточной области отличаются от текущего HEAD (и являются ли они дополнениями, изменениями или удалениями), которые являются изменениями, которые будут совершены, если вы используете git commit без явного путей или опции -a. Этот формат достаточно похож на вывод svn status, который вы показываете.

git diff --cached --name-status

Ответ 3

Вы можете попробовать:

git diff --name-status

Я получаю следующее:

$ git diff --name-status
M       README.markdown

Без файлов без следа.

Ответ 4

Я знаю, что оригинал OP попросил избежать git status, но я чувствовал, что было бы неплохо уйти на потомство (то есть другие люди, которые не разделяют оговорки OP).

git status --porcelain | grep -v '^[ |??]' | sed -e 's/[A-Z] *//'

Мое рассуждение состоит в том, что git status --porcelain кажется, что он был построен именно для этого типа затруднений...

источник: http://git-scm.com/docs/git-status.html

EDIT: Вы можете не использовать sed -e 's/[A-Z] *//', если хотите сохранить теги модификации git перед каждым именем файла.