繁体   English   中英

使用Cygwin将Git推送到远程服务器时挂起

[英]Git Push To Remote Server Hangs Using 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 status给我这个:

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

服务器上的git status(在myproject.git /内部)给我:

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

我不确定接下来要去哪里,我已经尝试了很多方法,但是我的无知是多山的,我可以使用指南。 也许还有一个巫师,一些矮人和霍比特人(如果您有备用的话)。 任何帮助将不胜感激。

我在Windows 8.1上。 使用Cygwin

谢谢。

如果使用Windows,则msysgit是一个更好的选择。 在Cygwin中使用git push已知存在问题。 其要点是,默认情况下,Git尝试在其用户身份验证过程中使用“简单密码提示”,如git-config 文档 (搜索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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM