Git Push To Remote Server Зависает С Помощью Cygwin

Я новичок в git через командную строку и столкнулся с некоторыми проблемами, из которых я не смог вытащить себя.

Я настроил репозиторий на своем сервере и создал локальный каталог, используя инструкции в thelucid.com.

на сервере:

ssh git@example.com
mkdir my_project.git
cd my_project.git
git init --bare
git update-server-info # If planning to serve via HTTP
exit

затем на локальном компьютере:

cd my_project
git init
git add *
git commit -m "My initial commit message"
git remote add origin git@example.com:my_project.git
git push -u origin master

когда я добираюсь до финальной команды здесь "git push-U origin master", команда зависает и зависает и никогда не останавливается.

git статус на местном дает мне это:

$ git status
On branch master
nothing to commit, working directory clean

состояние git на сервере (внутри myproject.ГИТ/)дает мне:

$ git status
fatal: This operation must be run in a work tree

Я на windows 8.1. Используя Cygwin.

спасибо.

2 ответов


если вы используете Windows, msysgit лучший вариант. Используя git push в Cygwin, как известно, есть проблемы. Суть в том, что Git по умолчанию пытается использовать "простое приглашение пароля" как часть процесса аутентификации пользователя, как указано в git-config doc(ищите core.askpass). Это приглашение пароля, однако, работает только на реальном UNIX, но не на Cygwin. Если интересно, вы можете прочитать об истории этого вопроса здесь.

Если вам абсолютно необходимо использовать Cygwin, убедитесь, что вы установили пакеты Cygwin git, как указано здесь. Затем попробуйте выполнить эту команду:

$ git config --global core.askpass /usr/libexec/git-core/git-gui--askpass

вероятно, есть и другие более сложные решения, но я думаю, что самое простое решение - это установить msysgit. :-)


проблема в том, что вы находитесь внутри .папка git. вы должны быть в корневой папке (родитель .git), чтобы иметь возможность просматривать статус, а затем нажать все ваши изменения.

cd..
git status