У меня есть "setup-a-msysgit-server-with-copssh-on-windows", после руководства Tim Davis, и я теперь изучал, как использовать команды мерзавца, после руководства Jason Meridth, и мне удалось получить все хорошо работать, но теперь я не могу передать команду нажатия.
Я установил сервер и клиент на той же машине (на данный момент), win7-x64.
Вот некоторая информация того, как настраиваются вещи:
CopSSH Folder : C:/SSH/
Local Home Folder : C:/Users/rvc/
Remote Home Folder: C:/SSH/home/rvc/ # aka /cygdrive/c/SSH/home/rvc/
git remote rep : C:/SSH/home/rvc/myapp.git # empty rep
В '/SSH/home/rvc/.bashrc' и 'Users/rvc/.bashrc':
export HOME=/cygdrive/c/SSH/home/rvc
gitpath='/cygdrive/c/Program Files (x86)/Git/bin'
gitcorepath='/cygdrive/c/Program Files (x86)/Git/libexec/git-core'
PATH=${gitpath}:${gitcorepath}:${PATH}
Так, клонирование работ (все ревет, сделано через "Bash мерзавца здесь" :P):
rvc@RVC-DESKTOP /c/code
$ git clone ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git
Initialized empty Git repository in C:/code/myapp/.git/
warning: You appear to have cloned an empty repository.
rvc@RVC-DESKTOP /c/code
$ cd myapp
rvc@RVC-DESKTOP /c/code/myapp (master)
$ git remote -v
origin ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git (fetch)
origin ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git (push)
Затем я создаю файл:
rvc@RVC-DESKTOP /c/code/myapp (master)
$ touch test.file
rvc@RVC-DESKTOP /c/code/myapp (master)
$ ls
test.file
Попытайтесь продвинуть его и получить эту ошибку:
rvc@RVC-DESKTOP /c/code/myapp (master)
$ git add test.file
rvc@RVC-DESKTOP /c/code/myapp (master)
$ GIT_TRACE=1 git push origin master
trace: built-in: git 'push' 'origin' 'master'
trace: run_command: 'C:\Users\rvc\bin\plink.exe' '-batch' '-P' '5858' 'rvc@192.1
68.1.65' 'git-receive-pack '\''/SSH/home/rvc/myapp.git'\'''
git: '/SSH/home/rvc/myapp.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly
"мерзавец: '/SSH/home/rvc/myapp.git' не является командой мерзавца. См. 'мерзавца - справка'"... что?!
Править: RAAAGE!!
У меня есть та же проблема снова, но теперь с ssh:
rvc@RVC-DESKTOP /c/code/myapp (master)
$ GIT_TRACE=1 git push
trace: built-in: git 'push'
trace: run_command: 'ssh' '-p' '5858' 'rvc@192.168.1.65' 'git-receive-pack '\''/
SSH/home/rvc/myapp.git'\'''
git: '/SSH/home/rvc/myapp.git' is not a git command. See 'git --help'.
fatal: The remote end hung up unexpectedly
Я попробовал нажатие GUI, и показывает то же сообщение.
git: '/SSH/home/rvc/myapp.git' is not a git command. See 'git --help'.
Pushing to ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git
fatal: The remote end hung up unexpectedly
Вот токи .bashrc:
C:\Users\rvc.bashrc (Я думаю, что это используется только ударом cygwin/git):
export HOME=/c/SSH/home/rvc
gitpath='/c/Program Files (x86)/Git/bin'
gitcorepath='/c/Program Files (x86)/Git/libexec/git-core'
export GIT_EXEC_PATH=${gitcorepath}
PATH=${gitpath}:${gitcorepath}:${PATH}
C:\SSH\home\rvc.bashrc (.. и это используется, когда мерзавец соединяется через ssh с "удаленным" сервером):
export HOME=/c/SSH/home/rvc
gitpath='/cygdrive/c/Program Files (x86)/Git/bin'
gitcorepath='/cygdrive/c/Program Files (x86)/Git/libexec/git-core'
export GIT_EXEC_PATH=${gitcorepath}
PATH=${gitpath}:${gitcorepath}:${PATH}
РЕДАКТИРОВАНИЕ 2: Некоторая дополнительная информация:
rvc@RVC-DESKTOP /c/code/myapp (master)
$ ssh -p 5858 rvc@192.168.1.65 git-receive-pack /SSH/home/rvc/myapp.git
git: '/SSH/home/rvc/myapp.git' is not a git command. See 'git --help'.
РЕДАКТИРОВАНИЕ 3:
rvc@RVC-DESKTOP /c/code/myapp (master)
$ git push --receive-pack='git receive-pack' ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git --a
ll
Counting objects: 3, done.
Writing objects: 100% (3/3), 202 bytes, done.
Total 3 (delta 0), reused 0 (delta 0)
To ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git
* [new branch] master -> master
Это имеет, добился цели??
нажатие мерзавца выполняет 'git-receive-pack', и это должен быть 'получать-пакет мерзавца'?
Моя версия мерзавца является 'версией 1.7.0.2.msysgit.0 мерзавца'
глупое исправление (оно изменило /SSH/home/rvc/.gitconfig):
rvc@RVC-DESKTOP /c/code/myapp (master)
$ git config --global remote.origin.receivepack "git receive-pack"
rvc@RVC-DESKTOP /c/code/myapp (master)
$ git push
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 246 bytes, done.
Total 2 (delta 0), reused 0 (delta 0)
To ssh://rvc@192.168.1.65:5858/SSH/home/rvc/myapp.git
680f32e..2da0df1 master -> master
Найден ответ ...
GIT_SSH
Если эта переменная среды установлена, то git fetch и git push будут
использовать эту команду вместо ssh, когда им необходимо подключиться к удаленной системе. Команде $ GIT_SSH будет предоставлено ровно два аргумента: имя пользователя @ хост (или просто хост) из URL-адреса и команда оболочки для выполнения на эта удаленная система.
Чтобы передать параметры программе, которую вы хотите перечислить в GIT_SSH, вам
нужно будет заключить программу и параметры в сценарий оболочки, а затем установить GIT_SSH для ссылки на сценарий оболочки.
Обычно проще настроить любые желаемые параметры через ваш
личный файл .ssh / config. Для получения дополнительных сведений обратитесь к документации по ssh.
Мне просто пришлось удалить переменную GIT_SSH из переменных среды Windows.
Я установил его, потому что следовал руководству Тима Дэвиса, но без использования TortoiseGit, и в руководстве сказано указать переменную на TortoisePlink (шаг 4.4), поэтому я решил, что мне нужно { {1}} указал на plink.exe: P. Хорошо ... переходим к следующей проблеме ...
1) наиболее частая причина этой проблемы - откройте окно Git Bash и введите echo $ HOME
- убедитесь, что для него установлено значение / c / SSH / Home /
. Если это не так, введите export HOME = / c / SSH / home /
2) попробуйте графический интерфейс [такая же проблема?]