2013-08-30 70 views
1

我做了很少的搜索,发现这个别名可以让功能分支与开发分支保持同步,这种分支在我手动从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的结帐 - ,它表示,回去你是最后一个分支创建这个错误。

我也试图把同样的命令在.bashrc中像下面

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

它创建同样的错误。

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

一些开明的头脑能告诉我如何改变它使它在Windows上工作吗?

由于

回答

5

\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 
+0

你说的很对,先生。我做了复制粘贴行,当我用手工输入Git bash时它曾经工作。我刚刚删除 - 从.bashrc文件并手动键入它,现在它工作。非常感谢。 – functionoid

+1

没问题,乐意帮忙。 –