ls-файлы мерзавца: практическое руководство определяет новые файлы (добавленный, не фиксировавший)?

После того, как я звонил git add <file> команда git status покажет мне что-то как:

...
new file:    <file>

Так или иначе я не могу управлять им для получения той же информации при помощи ls-files, это (ls-files -tc в этом случае), покажет мне:

H <commited file>
H <other commited file>
H <file>

Там не кажется никаким переключателем командной строки для существования для новых файлов. О файле сообщают, как кэшируется, который в порядке, но как я узнаю, что он не фиксируется в это время?

Это возможное с ls-files или некоторая подобная команда (где я не должен анализировать большой вывод как в случае git status)?

64
задан Luke Girvin 21 September 2012 в 16:18
поделиться

2 ответа

Вы хотите использовать git diff --cached. С --name-only он перечислит все файлы, которые вы изменили в индексе относительно HEAD. С --name-status вы можете получить и символ статуса, с --diff-filter вы можете указать, какой набор файлов вы хотите показать ('A' для недавно добавленных файлов, например). Используйте -M для включения обнаружения перемещений и -C для обнаружения копий, если они вам нужны.

Для самого строгого чтения того, что вы написали, git diff --cached --name-only --diff-filter=A выведет список всех файлов, которые вы добавили после HEAD и которые не существуют в HEAD.

80
ответ дан 24 November 2019 в 15:51
поделиться

Уточнение: Это способ показать файлы, которые я собираюсь добавить. Это не то, что искал OP, но я оставлю этот пост на случай, если он будет полезен другим.

Похоже, здесь отображаются только файлы, которые я добавил [в мою рабочую копию, а не индекс] , но они не соответствуют моим стандартным шаблонам игнорирования:

 $ git ls-files --others --exclude-standard

Без - exclude-standard , он также показывает файлы, которые игнорируются при запуске git status .

42
ответ дан 24 November 2019 в 15:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: