我一直在使用Git Extensions一段时间(它真棒!)但我还没有找到以下简单的答案:
有时候,在输入提交消息时,会输入错误信息.我的朋友告诉我如何通过以下方式修复它(在Git Extentions中):
右键单击提交>高级>修复提交

然后我只需选中"修改"框并重写我的信息即可!我的提交消息已修复.
然而,另一个选项"壁球提交"......我一直想知道它的作用是什么?!
我的问题是:
有人会简单地解释一下在Git/Git Extentions中Squash提交和Fixup提交之间的确切区别是什么?他们看起来...... 与我"相似":

git 在使用 --fixup 和 --autosquash 时让我很头疼。我想举两个例子,一个工作得很好,另一个是一团糟。(git 版本 2.6.2)
工作示例:
第一次提交:
$ git init
$ printf '1\n' > test.file
$ git add test.file
$ git commit -m 'Insert 1 --> first line'
$ cat test.file
1
Run Code Online (Sandbox Code Playgroud)
第二次提交(BUG):
$ printf 'This is\na BUG\n' >> test.file
$ git commit -am 'Added line 2 and 3 with BUG'
$ cat test.file
1
This is
a BUG
Run Code Online (Sandbox Code Playgroud)
第三次提交:
$ sed -i '2i 2' test.file
$ git commit -am 'Insert 2 --> second line'
$ cat …Run Code Online (Sandbox Code Playgroud) 我在Python Lisp编译器和一些C链接器的源代码中看到了这个术语.
我的猜测是,一个修复只是一个程序集周围的包装,确保对齐是正确的,但我不确定这里有什么.
我听过这个术语,"vtable fixup",用过.这是什么意思?我没有成功问谷歌.我已经知道vtable是什么,所以不需要定义.
我知道,我可以进行交互式变基、重写首次提交并修复所有其他内容。但如果一个分支包含数百个提交,它就会变得非常乏味。
有没有更简单的方法?
每当我想将最新的提交修复到第二个最新的提交时,我就会这样做
git rebase HEAD~2 -i
<replace pick with fixup on line 2>
Run Code Online (Sandbox Code Playgroud)
有没有办法在自动脚本中执行此操作,而不受人为干扰?
我尝试过这个并不起作用:
git commit --fixup=HEAD
Run Code Online (Sandbox Code Playgroud)