GIT - '~ / repo.git /' не является командой git - PullRequest
0 голосов
/ 08 декабря 2011

У меня проблема с удаленным git-репо и локальным репо (с использованием SmartGit).

Я создаю удаленное репо на моем сервере через ssh:

> cd ~
> git init repo.git
> cd repo.git
> touch readme
> git add .
> git commit -m "Initial commit"

Отсюда все кажется идеальным. Сейчас я пытаюсь клонировать репо с помощью Smartgit с командой

ssh://user@server:22/~/repo.git

Все хорошо клонируется. Я делаю изменения в файле readme, сохраняю его и пытаюсь зафиксировать, нажать и получить ошибку:

The remote end hang up unexpectedly
git: '~/repo.git' is not a git command. See 'git --help'

Что я делаю не так? Спасибо.

Ответы [ 3 ]

2 голосов
/ 08 декабря 2011

Используйте:

GIT_TRACE=2 git push origin master

и посмотрите, что происходит для устранения проблемы.

Обновление:

Он пытается git-receive-pack

Попробуйте сделать следующее:

git config --global remote.origin.receivepack "git receive-pack"

А затем повторите попытку.

Другие вещи, которые вы можете попробовать:

На удаленном сервере настроить пустое хранилище:

git init --bare

А затем попробуйте клонировать и нажать на него.

1 голос
/ 08 декабря 2011

Я бы предложил использовать полный путь вместо домашнего ярлыка (~), например, git clone ssh://user@server/home/tuergeist/repo

Это работает для меня на Linux, а также на WindowsXP в git bash.

Вы также должны принять расширение .git, это может сбить с толку ваши инструменты, так как оно ожидает пустое хранилище. (Но я не уверен)

0 голосов
/ 08 декабря 2011

Вам не нужно указывать порт 22; это порт по умолчанию для SSH. Кроме того, SSH используется по умолчанию, если вы укажете user@server:path.

Попробуйте клонировать просто ...

user@server:~/repo.git

вместо.

...