为什么Git会给出"未知命令:pick"在一个互动的rebase期间?

时间:2016-09-08 23:06:04

标签: git git-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。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

[*]
charset = utf-8-bom