【问题标题】:Is there a way to add untracked files in git when adding via patch?通过补丁添加时,有没有办法在 git 中添加未跟踪的文件?
【发布时间】:2020-02-04 23:31:04
【问题描述】:

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

但是,我很沮丧,我无法在同一命令中添加未跟踪的文件。如果有像 git add -p --include-untracked 这样的选项,我会喜欢它,然后将它们视为一个补丁,就像它的其余部分一样。

有没有更好的方法来作为单个命令执行此操作?

【问题讨论】:

    标签: git patch git-untracked


    【解决方案1】:

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

    您可以在之前运行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 已经很多年了,我不迟于昨天遇到了同样的问题。考虑到您在这里公开的内容,我会说我们不再缺少新功能,而只是将补丁发送给开发团队,只是在现有消息中附加一条注释:“要通过补丁添加新文件,请使用 git - N 优先”。
    • @Obsidian 如果您要在Git has a robust system for dealing with patches files 周围发送补丁文件。但是补丁文件很笨拙,并且失去了 Git 的很多功能。而是考虑使用 Git 遥控器。 “嘿开发团队,这是我的存储库的 URL,我的工作在分支 feature” 然后他们可以像任何其他分支一样合并 git remote add obsidian &lt;url&gt;git fetch obsidian 并合并 obsidian/feature
    • 再次感谢您提供这些精确度。当然,当我说“发送补丁”时,它是在全球范围内。我将这些命令用于 Linux Kernel 的补丁提交(尤其是在参与 Eudyptula 项目时)并为其他项目执行拉取请求。但我还是赞成,因为这些信息对每个人都很有用。
    • addp 别名是完美的解决方案。这太糟糕了,它不是默认值。我无法想象我不想添加新文件的情况。我想如果我开始并且还没有正确完成我的.gitignore 位。但除此之外,在正常的代码流中,新文件和更改的文件都是我想要暂存的工作的一部分,99% 的时间。所以现在我只是重新训练我的大脑去做git addp,我很好
    猜你喜欢
    • 2020-01-08
    • 1970-01-01
    • 2016-02-04
    • 2017-12-30
    • 2016-02-07
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    相关资源
    最近更新 更多