git:自动特定于行的修复

git:自动特定于行的修复,git,git-rebase,git-interactive-rebase,Git,Git Rebase,Git Interactive Rebase,我最近了解到,哪种方法会将您的提交标记为先前提交的修正,并在交互式重新基址期间自动将它们排列在彼此旁边 如何为多行自动和单独执行此操作? 以下面的例子为例。我的git历史记录如下所示: c5069d5 This commit adds method a() to file A.cpp ac5db87 This commit does something in file B.cpp 733e2ff This commit adds method b() to file A.cpp ac5db87

我最近了解到,哪种方法会将您的提交标记为先前提交的修正,并在交互式重新基址期间自动将它们排列在彼此旁边

如何为多行自动和单独执行此操作?

以下面的例子为例。我的git历史记录如下所示:

c5069d5 This commit adds method a() to file A.cpp
ac5db87 This commit does something in file B.cpp
733e2ff This commit adds method b() to file A.cpp
ac5db87 This commit does something else in file B.cpp
在我的工作树中,我更改了文件a.cpp的方法
a()
b()
(也许我添加了一个方法
c()
)。请注意,我在这里谈论的函数只是为了使通信更容易——当然,git不知道编程语言

是否可以从工作树中的两个单独更改自动生成两个单独的修复提交,即:

c5069d5 This commit adds method a() to file A.cpp a5559d5 fixup! This commit adds method a() to file A.cpp ac5db87 This commit does something in file B.cpp 733e2ff This commit adds method b() to file A.cpp a53aad5 fixup! This commit adds method b() to file A.cpp ac5db87 This commit does something else in file B.cpp c5069d5此提交将方法a()添加到文件a.cpp a5559d5修正!此提交将方法a()添加到文件a.cpp ac5db87此提交在文件B.cpp中执行某些操作 733e2ff此提交将方法b()添加到文件A.cpp a53aad5修正!此提交将方法b()添加到文件A.cpp ac5db87此提交在文件B.cpp中执行其他操作 (现在,工作树包含A.cpp中的更改,该更改添加了
c()
) 如果它能处理工作树中的多个文件(而不仅仅是本例中的单个A.cpp),那就太好了

更新,备选措辞:


git Dull显示每行的最后一次提交。如果我现在更改了一行,我想修复之前为这行显示的commit git dull。

正如jberrymann在回答中所建议的那样,正是这样做的。使用命令
git fixup-c
为您提供了一个可能的修复目标列表

,git需要理解编程语言的语法。但是git只管理文本差异。@JohannesThorn我只是说函数
a()
b()
c()
,以使示例更生动(作为“我更改了一些行”的占位符)。我想要的在理论上应该是可能的:git Dull显示了每行的最后一次提交。如果我现在更改了一行,我想修正git在这行代码中显示的提交错误。这是一个更好的解释吗?是的,这个解释好得多,但我不知道如何实现它。只是寻找同样的东西…这个工具声称做了很多我想要的事情,但还没有给它一个旋转