git status .
покажет состояние текущего каталога и подкаталогов.
Например, заданные файлы (числа) в этом дереве:
a/1
a/2
b/3
b/4
b/c/5
b/c/6
из подкаталога "b", git status
показывает новые файлы во всем дереве:
% git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: ../a/1
# new file: ../a/2
# new file: 3
# new file: 4
# new file: c/5
# new file: c/6
#
, но git status .
просто показывает файлы в «b» и ниже.
% git status .
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: 3
# new file: 4
# new file: c/5
# new file: c/6
#
Только этот подкаталог, не ниже
git status .
рекурсивно показывает все файлы ниже "b". Чтобы показать только файлы в «b», но не ниже, вам нужно передать список только файлов (а не каталогов) в git status
. Это немного сложно, в зависимости от вашей оболочки.
Zsh
В zsh вы можете выбирать обычные файлы с помощью "glob qualifier" (.)
. Например:
% git status *(.)
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: 3
new file: 4
Bash
Bash не имеет квалификаторов глобуса, но вы можете использовать GNU find
, чтобы выбрать обычные файлы и затем передать их git status
следующим образом:
bash-3.2$ find . -type f -maxdepth 1 -exec git status {} +
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: 3
new file: 4
Используется -maxdepth
, которое является расширением GNU find . POSIX find не имеет -maxdepth
, но вы можете сделать это:
bash-3.2$ find . -path '*/*' -prune -type f -exec git status {} +
On branch master
Initial commit
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: 3
new file: 4