Git Push To Remote Server使用Cygwin挂起

时间:2015-04-21 04:39:00

标签: windows git ssh 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 /中)给了我:

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

我不确定下一步该往下看,我尝试了很多东西,但我的无知是多山的,我可以使用导游;如果你有任何备件,可能是巫师,一些矮人和霍比特人。任何帮助将不胜感激。

我在Windows 8.1上。 使用Cygwin

感谢。

2 个答案:

答案 0 :(得分:5)

如果您使用的是Windows,msysgit是更好的选择。已知在Cygwin中使用git push会有问题。它的要点是Git默认情况下,尝试使用“简单密码提示”作为其用户身份验证过程的一部分,如git-config doc中所述(搜索core.askpass) 。但是,此密码提示仅适用于真实UNIX,但不适用于Cygwin。如果有兴趣,您可以阅读此问题的历史记录here

如果您必须使用Cygwin,请确保按指定的here安装了Cygwin git软件包。然后尝试运行此命令:

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

可能还有其他更复杂的解决方案,但我认为最简单的解决方案仍然是安装msysgit。 : - )

答案 1 :(得分:-3)

问题是你在.git文件夹中。 您需要位于根文件夹(.git的父文件夹)中才能查看状态,然后推送所有更改。

cd..
git status