Make git add——补丁记住我是哪个大块头';在下次提交之前,我拒绝添加

Make git add——补丁记住我是哪个大块头';在下次提交之前,我拒绝添加,git,git-add,Git,Git Add,我的常见工作流程是进行大量代码编辑,然后使用git add--patch将更改组织成逻辑一致的提交 一个反复出现的场景是: 我跳过了一系列与我要进行的提交无关的更改 我添加了一些有意义的更改 我发现了一个打字错误或一些我忘记删除的注释代码 我点击q退出交互式添加 我回到我的编辑那里,做了一些小改动 我再次启动git add--patch 我非常小心地再次浏览整个更改集,确保为所有我不想包含的大块头再次键入n 我找到我最新更新的帅哥并键入y添加它 转到步骤1 这个循环一次又一次地进行,直到我的提交

我的常见工作流程是进行大量代码编辑,然后使用
git add--patch
将更改组织成逻辑一致的提交

一个反复出现的场景是:

  • 我跳过了一系列与我要进行的提交无关的更改
  • 我添加了一些有意义的更改
  • 我发现了一个打字错误或一些我忘记删除的注释代码
  • 我点击
    q
    退出交互式添加
  • 我回到我的编辑那里,做了一些小改动
  • 我再次启动git add--patch
  • 我非常小心地再次浏览整个更改集,确保为所有我不想包含的大块头再次键入
    n
  • 我找到我最新更新的帅哥并键入
    y
    添加它
  • 转到步骤1
  • 这个循环一次又一次地进行,直到我的提交准备就绪

    我希望git记住我明确拒绝添加的帅哥,这样下次运行
    git add--patch
    ,我就不必再拒绝了


    我认为git不支持这一点,但有没有任何工具或工作流程可以让这一点变得更简单?

    在我的编辑器(目前是VSCode)中使用git集成可以最好地实现这一点

    在带有更改的文件的
    Git:openchanges
    视图中,您可以选择文件的一个区域,然后运行
    Git:Stage Selected Ranges
    命令来准备一个大块头。因为您在编辑器中的位置是正确的,所以在登台之前对其进行更改很简单

    我可能只需要更改我的工作流程并以这种方式进行登台


    (我相信Emacs中的Magit也支持这种工作流。)

    在我的编辑器(目前是VSCode)中使用Git集成可以最好地实现这一点

    在带有更改的文件的
    Git:openchanges
    视图中,您可以选择文件的一个区域,然后运行
    Git:Stage Selected Ranges
    命令来准备一个大块头。因为您在编辑器中的位置是正确的,所以在登台之前对其进行更改很简单

    我可能只需要更改我的工作流程并以这种方式进行登台


    (我相信Emacs中的Magit也支持这种工作流。)

    你为什么不支持“尽早提交,经常提交”风格呢?我确实经常提交,但特别是当我在一个不熟悉的代码库中或是在编写一些东西时,我会在我的工作副本中进行一些编辑,这些编辑对于将它们组合到一个提交中是没有意义的。值得一提的是,我发现自己在进行了大量需要重建和清理的黑客攻击时,也会遇到类似的情况。我没有尝试用git add-p
    git-add-p
    ,而是在一个临时分支上提交一个大的更改,然后在“真正的分支”上重新开始更小、计划更好的更改。你为什么不支持“尽早提交,经常提交”风格呢?我确实经常提交,但是,特别是如果我在一个不熟悉的代码库中,或者正在添加一些内容,我的工作副本中会有一些编辑,这些编辑对于将它们组合到一个提交中是没有意义的。值得一提的是,当我进行了大量需要重建和清理的黑客攻击时,我发现自己也处于类似的情况。我没有试图用git add-p
    git-add-p
    ,而是在一个临时分支上提交大的更改,然后在“真正的分支”上重新开始进行更小、计划更好的更改。