我做了一些搜索,发现这个别名可以使功能分支与开发分支保持同步,这在我从 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 中手动运行所有命令时它们都可以正常工作,所以没有其他问题。似乎这只是因为 Windows 上的 msysgit 或 bash 的差异,因为我已经阅读了这些别名适用于 Mac 和 Linux 上的 git。
一些开明的头脑可以告诉我如何改变它以使其在 Windows 上工作吗?
谢谢
最佳答案
\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
关于windows - 保持功能分支与 "develop"分支同步的别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538258/