所以我正在学习的乐趣git add -p
。我曾经使用 Sourcetree 或类似的 GUI 工具来查看作为 的一部分的更改git add
,但现在我在命令行上使用它变得更好了。
但是,我很沮丧,我无法在同一命令中添加未跟踪的文件。如果有一些选项,我会喜欢它:git add -p --include-untracked
然后将它们视为一个补丁,就像它的其余部分一样。
有没有更好的方法可以作为单个命令执行此操作?
所以我正在学习的乐趣git add -p
。我曾经使用 Sourcetree 或类似的 GUI 工具来查看作为 的一部分的更改git add
,但现在我在命令行上使用它变得更好了。
但是,我很沮丧,我无法在同一命令中添加未跟踪的文件。如果有一些选项,我会喜欢它:git add -p --include-untracked
然后将它们视为一个补丁,就像它的其余部分一样。
有没有更好的方法可以作为单个命令执行此操作?
我不知道直接执行此操作的选项,这似乎是一个缺失的功能。这里有一些解决方法。
您可以运行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