sshing 到 cygwin 時發生 git-upload-pack 錯誤。sshd
在 cygwin 中,不會.bash_profile
依照 *nix 環境中的預期取得路徑。
有什麼辦法可以解決這個問題並使 msysgit 與 cygwin bash 和 cygwin ssh 一起正常工作?
答案1
我到處尋找像我這樣遇到 git-upload-pack 缺失錯誤的人,並想出了這個。
基本上這只是將 Cygwins ssh 路徑設定為包含 msysgit
安裝 msysgit (只使用 git bash 就足夠了,我們不需要 cygwin 的 git.cmd 東西)
安裝 cygwin 搜尋 ssh 並勾選/檢查它。
ssh-host-config -y
我沒有費心將 CYGWIN 變數設定為預設值似乎正確的任何值。
cygrunsrv.exe -R sshd
刪除進程中所建立的服務
ssheNv="/usr/bin:/bin:/cygdrive/c/WINDOWS/system32:/cygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/bin"
mSysgit="/usr/local/bin:/c/WINDOWS/system32:/c/WINDOWS:/cygdrive/c/Program Files/Git/bin:/cygdrive/c/Program Files/Git/libexec/git-core"
現在將這兩個字串新增至以下路徑:
cygrunsrv -I sshd -d "CYGWIN sshd" -p /usr/sbin/sshd -a -D -e "PATH=$ssheNv:$mSysgit"
cygrunsrv.exe -S
啟動服務(如果需要,可以使用 -E 再次停止)
從另一台電腦使用 msysgit
git clone ssh://dude@hostIPetc'/Documents and Settings/blabla/myrepo.git'
對於那些在他們的道路上沒有git-upload-pack
很好的人來說,這可以解決它。我不必安裝 cygwin git 只是為了滿足路徑!
但問題是有人能弄清楚如何指向 cygwin 路徑“/cygdrive/d/”等嗎?現在只有 / 有效,這意味著 C:\
如果有人認為這太草率了,應該使用 cygwin git 請這麼說。
唔http://www.grumpydev.com/2011/01/19/switching-from-cygwin-to-msysgit-git-thinks-everything-has-been-modified/ MSysGit「偽造」檔案模式是切換到 cygwin 的一個原因,或者它對 Windows 是否有幫助...