2013-08-30 100 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

沒問題,樂意幫忙。 –