为什么 Git 在交互式变基期间给出 "Unknown command: pick"?

Why does Git give "Unknown command: pick" during an interactive rebase?

我做到了:

git rebase mybranch --interactive

然后我将我的 rebase-todo 文件编辑成这样:

pick aec2c2b Add foo method to bar
edit 8441f4b Do something slightly wrong
pick dabcc80 Do something else correctly

但是当我告诉 Git 实现它时,我得到了:

Unknown command: pick aec2c2b8f9c314f9dddc67a2c71f8be0a27c0fab Add foo method to bar
Please fix this using 'git rebase --edit-todo'.

什么?但是 pick 是一个有效的命令!

为什么会发生这种情况,我该如何解决?

git --version 的输出:

git version 2.8.1.windows.1

我 运行 Windows 10.

由于我与使用 Visual Studio 的开发人员合作,我将我的编辑器配置为将文件保存为带 BOM 的 UTF-8。 Git 不知道如何处理 BOM,所以这就是我收到错误的原因。 (Git 认为我尝试使用命令 BOMpick 而不是 pick。您可以在我的问题中包含的错误消息中检测 BOM。)

删除 BOM 修复了错误。具体来说,我将其添加到我的 .editorconfig:

[.git/**]
charset = utf-8

因为在文件的顶部它已经有了这个:

[*]
charset = utf-8-bom