通过补丁添加时,有没有办法在 git 中添加未跟踪的文件?

Dan*_*arp 4 git patch git-untracked

所以我正在学习的乐趣git add -p。我曾经使用 Sourcetree 或类似的 GUI 工具来检查更改,作为 的一部分git add,但现在我在命令行上使用它变得更好。

但是,令我感到沮丧的是,我无法在同一命令中添加未跟踪的文件。如果有像这样的选项,我希望git add -p --include-untracked它可以像其他部分一样将它们视为补丁。

有没有更好的方法可以通过单个命令来完成此操作?

Sch*_*ern 5

我不知道直接执行此操作的选项,似乎缺少功能。这里有一些解决方法。

您可以运行git add --intent-to-add .-Nbefore 来跟踪所有未跟踪的文件。这不会添加它们的内容,它们的更改将显示在git add -p. 您可以将其添加为您的.gitconfig.

[alias]
    addp = !git add -N . && git add -p
Run Code Online (Sandbox Code Playgroud)

您可以使用交互模式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
Run Code Online (Sandbox Code Playgroud)