保持功能分支与"开发"同步的别名科

时间:2013-08-30 17:17:05

标签: windows git bash msysgit git-config

我做了很少的搜索并找到了这个别名,以保持功能分支与开发分支同步,当我手动从Git bash运行时,该分支有效。

sync='!f() { echo Syncing this branch with develop && git checkout develop && 
git pull && git checkout – && git rebase develop; }; f'

我尝试将此别名放在.gitconfig中但是我收到以下错误

error: pathspec '"\342\200\223"' did not match any file(s) known to git.

我发现的是git checkout - ,代表,回到你所在的最后一个分支创建了这个错误。

我也尝试将相同的命令放在.bashrc中,如下所示

alias sync='echo Syncing this branch with develop && git checkout develop && git pull 
&& git checkout – && git rebase develop'

会产生同样的错误。

然而,为了确保当我在Git Bash中手动运行所有命令时,它们都能正常工作,所以没有其他问题。似乎这只是因为msysgit或windows上的bash存在差异,因为我已经在mac和Linux上阅读了这些别名对git的工作。

一些开明的头脑可以告诉我如何更改它以使其适用于Windows吗?

由于

1 个答案:

答案 0 :(得分:6)

\342\200\223是表示UTF-8 "en dash" character的八进制字符序列:八进制342 200 223与十六进制e2 80 93相同。你可能从某个地方复制/粘贴了那个命令行,而那个角色正在吹嘘git。使用ASCII -

也就是说,此字符:和此字符:- 不一样。你需要使用后者。

您可以通过您喜欢的十六进制转储程序运行该字符进行检查。这是我的例子:

$ echo -n – | hexdump
0000000 e2 80 93                                       
0000003
$ echo -n - | hexdump
0000000 2d                                             
0000001