我做了很少的搜索并找到了这个别名,以保持功能分支与开发分支同步,当我手动从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吗?
由于
答案 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