![](/img/trans.png)
[英]Git SSH client for windows and wrong path for .ssh/config file
[英]How to stop git via ssh on windows from resolving the wrong path?
我有一個帶有ssh服務器設置的Windows 2003機器。 我在本地和服務器上安裝了msysgit(git版本1.6.2)。
服務器具有以下我的存儲庫的絕對路徑:
e:\vc\git\myrepo.git
當用戶登錄時,他/她將被放入以下工作目錄:
e:\vc\git\
在我的開發機器上運行以下cmd時:
git clone ssh://myuser@myip/myrepo.git testrepo
我收到以下錯誤:
fatal: ''/myrepo.git'' does not appear to be a git repository
根據我的ssh日志,似乎git正在服務器上執行此cmd:
'cmd.exe /c git-upload-pack '/myrepo.git''
在本地(在服務器上)執行該命令失敗的原因相同。 我認為這個問題與git前綴為'/'的路徑有關。 我怎么告訴git不要這樣做? 這應該有用嗎?
注意:git-upload-pack正在運行,因為我在路徑中添加了\\ gitinstallpath \\ libexec \\ git-core。 顯然這是一個錯誤,將來會修復,這是我的工作。
我通過將我的ssh服務器從winssh切換到openssh(通過cygwin層)解決了這個問題。 我能夠使用winsshd連接正常(如上所述),但是winsshd沒有正確處理前綴為“/”的路徑。 我可能會讓winsshd工作,但切換到cygwin和openssh的速度更快。
如果您處於類似情況,這里有一篇很好的博客文章可以啟動設置:
你試過以下嗎?
git clone ssh://myuser@myip/myrepo testrepo
請注意從SSH路徑末尾刪除“.git”。 如果遠程目錄名稱包含末尾,則最后只需要該后綴。
此外,您是否嘗試過任何其他SSH URL格式? 要使用相對路徑,您可以嘗試:
git clone ssh://myuser@myip/~/myrepo testrepo
有關其他URL格式的詳細信息,請參閱git clone手冊頁 。
如果有人仍然對解決方法感興趣:
問題是 - cmd.exe不理解單引號參數。 所以我們改用sh。
用line創建文件gup.sh
git-upload-pack.exe $*
和grp.sh一起
git-receive-pack.exe $*
在服務器上!
然后運行:
git clone -u 'sh gup.sh' ssh://myuser@myip/e/vc/git/myrepo.git testrepo git config remote.origin.uploadpack 'sh gup.sh' git config remote.origin.receivepack 'sh grp.sh'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.