Я не знаю, как сделать это напрямую, похоже на отсутствующую функцию. Вот некоторые обходные пути.
Вы можете запустить git add --intent-to-add .
или -N
, прежде чем отслеживать все неотслеживаемые файлы. Это не добавит их содержимое, и их изменения будут отображаться в git add -p
. Вы можете добавить это в качестве псевдонима в .gitconfig
.
[alias]
addp = !git add -N . && git add -p
. Вы можете использовать интерактивный режим git add -i
, чтобы получить более точное управление, включая добавление неотслеживаемых файлов.
$ git add -i
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> 4
1: foo
Add untracked>> 1
* 1: foo
Add untracked>> ^D
added 1 path
*** Commands ***
1: status 2: update 3: revert 4: add untracked
5: patch 6: diff 7: quit 8: help
What now> ^D
Bye.
$ git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: foo