Git Push To Remote Server使用Cygwin挂起

iet*_*tis 6 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
Run Code Online (Sandbox Code Playgroud)

然后,在本地机器上:

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
Run Code Online (Sandbox Code Playgroud)

当我在这里找到最后一个命令"git push -u origin master"时,命令会挂起并挂起,并且永远不会停止挂起.

本地的git状态给了我这个:

$ git status
On branch master
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)

服务器上的git状态(在myproject.git /中)给了我:

$ git status
fatal: This operation must be run in a work tree
Run Code Online (Sandbox Code Playgroud)

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

我在Windows 8.1上.使用Cygwin

谢谢.

iva*_*sim 5

如果您使用的是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.:-)