cygwin に ssh すると、git-upload-pack エラーが発生します。cygwinでは、*nix 環境で期待どおりsshd
にパスが取得されません。.bash_profile
これを修正して、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"
次に、以下の 2 つの文字列を以下のパスに追加します。
cygrunsrv -I sshd -d "CYGWIN sshd" -p /usr/sbin/sshd -a -D -e "PATH=$ssheNv:$mSysgit"
cygrunsrv.exe -S
サービスを開始します(必要に応じて再度停止するには -E を使用します)
msysgit を使って別の PC から
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 で役立つのでしょうか...