После того, как я звонил 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
)?
Вы хотите использовать git diff --cached
. С --name-only
он перечислит все файлы, которые вы изменили в индексе относительно HEAD. С --name-status
вы можете получить и символ статуса, с --diff-filter
вы можете указать, какой набор файлов вы хотите показать ('A' для недавно добавленных файлов, например). Используйте -M
для включения обнаружения перемещений и -C
для обнаружения копий, если они вам нужны.
Для самого строгого чтения того, что вы написали, git diff --cached --name-only --diff-filter=A
выведет список всех файлов, которые вы добавили после HEAD и которые не существуют в HEAD.
Уточнение: Это способ показать файлы, которые я собираюсь добавить. Это не то, что искал OP, но я оставлю этот пост на случай, если он будет полезен другим.
Похоже, здесь отображаются только файлы, которые я добавил [в мою рабочую копию, а не индекс] , но они не соответствуют моим стандартным шаблонам игнорирования:
$ git ls-files --others --exclude-standard
Без - exclude-standard
, он также показывает файлы, которые игнорируются при запуске git status
.