通过补丁添加时,有没有办法在 git 中添加未跟踪的文件?
Is there a way to add untracked files in git when adding via patch?
所以我正在学习 git add -p
的乐趣。作为 git add
的一部分,我曾经使用 Sourcetree 或类似的 GUI 工具来查看更改,但现在我在命令行上使用它变得更好了。
但是,我很沮丧,因为我无法在同一个命令中添加未跟踪的文件。如果有这样的选项,我会喜欢它: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
所以我正在学习 git add -p
的乐趣。作为 git add
的一部分,我曾经使用 Sourcetree 或类似的 GUI 工具来查看更改,但现在我在命令行上使用它变得更好了。
但是,我很沮丧,因为我无法在同一个命令中添加未跟踪的文件。如果有这样的选项,我会喜欢它: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