我是通过命令行使用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
感谢。
答案 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