Git rebase 一个简单的提交重新排序失败,没有做任何操作
Git rebase on a simple commit reorder fail without doing any action
我正在尝试重新排序 3 个提交。
我目前的状态是:
A -> B -> C
我想变基并开始:
A -> C -> B
(只是交换提交 B
和 C
)
我运行命令git rebase -i A
。
我的编辑器打开了,我更改了已完成的选择并保存。
没有任何反应。
我注意到以下几点:
当我 运行 rebase 命令时,我的编辑器打开但我已经在终端中看到以下内容:
Successfully rebased and updated refs/heads/master.
rm: cannot remove `/path/to/git/repo/.git/rebase-merge': Directory not empty
即使在 运行 执行变基命令后我仍然没有做任何事情(我还没有在我的编辑器中编辑任何东西)。
我错过了什么?
乍一看可能不像,但这本质上是 How can I use gvim for svn commit messages under Windows? 的重复,也就是说,这是一个 vim/gvim 标志 and/or 设置问题。 (这个问题一般会出现在许多基于 GUI 的编辑器中,不仅仅是 gvim,但每个编辑器的解决方法取决于基于 GUI 的编辑器。)你告诉 Git 到 运行 gvim,并且 Git 这样做的方式是 gvim 将 "please edit this other file" 请求传递给它自己的一个单独实例。
发送请求后,Git 运行 的 gvim 说: "All done!" 它成功退出并且 Git 认为这意味着 "all done editing." Git 读取文件,这当然是 not 完成的——gvim 的一些 other 实例现在 运行ning,让你编辑指令文件 - Git 看到原始未更改的文件并执行无操作变基。
解决方法是指示 gvim Git 运行s 停留,等待请求的文件编辑完成。然后当 Git 运行 的 gvim 退出时,文件真正 是 完成,并且 Git 可以继续读取它。我不使用这个特定的编辑器和模式,所以不知道 -f
作为启动标志或 .vimrc
设置 (set guioptions+=f
) 是否更好。
(旁白:删除目录失败是因为 gvim 在其中创建了一个 .swp
文件。)
我正在尝试重新排序 3 个提交。
我目前的状态是:
A -> B -> C
我想变基并开始:
A -> C -> B
(只是交换提交 B
和 C
)
我运行命令git rebase -i A
。
我的编辑器打开了,我更改了已完成的选择并保存。 没有任何反应。
我注意到以下几点:
当我 运行 rebase 命令时,我的编辑器打开但我已经在终端中看到以下内容:
Successfully rebased and updated refs/heads/master.
rm: cannot remove `/path/to/git/repo/.git/rebase-merge': Directory not empty
即使在 运行 执行变基命令后我仍然没有做任何事情(我还没有在我的编辑器中编辑任何东西)。
我错过了什么?
乍一看可能不像,但这本质上是 How can I use gvim for svn commit messages under Windows? 的重复,也就是说,这是一个 vim/gvim 标志 and/or 设置问题。 (这个问题一般会出现在许多基于 GUI 的编辑器中,不仅仅是 gvim,但每个编辑器的解决方法取决于基于 GUI 的编辑器。)你告诉 Git 到 运行 gvim,并且 Git 这样做的方式是 gvim 将 "please edit this other file" 请求传递给它自己的一个单独实例。
发送请求后,Git 运行 的 gvim 说: "All done!" 它成功退出并且 Git 认为这意味着 "all done editing." Git 读取文件,这当然是 not 完成的——gvim 的一些 other 实例现在 运行ning,让你编辑指令文件 - Git 看到原始未更改的文件并执行无操作变基。
解决方法是指示 gvim Git 运行s 停留,等待请求的文件编辑完成。然后当 Git 运行 的 gvim 退出时,文件真正 是 完成,并且 Git 可以继续读取它。我不使用这个特定的编辑器和模式,所以不知道 -f
作为启动标志或 .vimrc
设置 (set guioptions+=f
) 是否更好。
(旁白:删除目录失败是因为 gvim 在其中创建了一个 .swp
文件。)