git:自动修复更改的行所属的提交

时间:2017-05-20 02:38:04

标签: git

想象一下,在评论中写错字或类似的东西:

- // Do thigns
+ // Do things

现在,通过执行git blame @ -- file,您会看到最初添加该行的提交:

decafbad ... // Do things

您可以通过运行git commit --fixup decafbad手动修复该行。

有没有办法自动执行此git blame @ -- file |grep thignsgit commit --fixup decafbad周期?

1 个答案:

答案 0 :(得分:0)

我用bash编写了一个小脚本来获取它。该脚本假定您只进行了一个修正更改,因此仅查看修改的第一个文件和更改的第一行:

file=$(git diff | sed -n "s/.* a\/\(.*\) \+\+\+.*/\1/p")
line_removed=$(git diff | tail -n +6 | sed -n "s/^-\(.*\)/\1/p")
hash=$(git blame HEAD $file | grep $line_removed | awk "{print \$1}")
git commit -a --fixup $hash

如果您将此代码放在/usr/bin/git-auto-fixup内(并使其可执行),则可以这样调用它:git auto-fixup