保持功能分支与"develop"分支同步的别名

fun*_*oid 2 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'
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

alias sync='echo Syncing this branch with develop && git checkout develop && git pull 
&& git checkout – && git rebase develop'
Run Code Online (Sandbox Code Playgroud)

这会产生同样的错误.

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

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

谢谢

Car*_*rum 6

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

也就是说,这个角色:这一个:-不一样的.你需要使用后者.

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

$ echo -n – | hexdump
0000000 e2 80 93                                       
0000003
$ echo -n - | hexdump
0000000 2d                                             
0000001
Run Code Online (Sandbox Code Playgroud)