5

也许是一个重复的问题,虽然我试图从现有问题中找出答案但失败了。

我使用以下命令在服务器上创建了一个 git repo:

mkdir gitrepo
cd gitrepo
git init

然后从另一台机器我尝试将文件推送到这个 repo 但失败了。

git init
git clone user@server:~/gitrepo/.git
cd gitrepo
touch test
git add test
git commit -a

到目前为止,没有发生错误。当我尝试将更改推送到服务器时,会出现以下错误:

>git push
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'user@server:~/gitrepo/.git'

以前有人遇到过这个问题吗?

我发现一个博客很好地解释了非裸仓库和裸仓库之间的区别。http://www.bitflop.com/document/111 遇到同样问题的可以参考这个。

4

3 回答 3

6

git push [remote-name] [branch-name]. 例如git push origin master

于 2012-05-24T15:36:07.283 回答
4

在第一台机器上,您创建了一个非裸存储库,或者一个具有工作副本的存储库。推送到非裸仓库可能会有点令人兴奋,因此请确保这确实是您想要的。

在第二台机器上,您在当前目录 ( git init) 中创建了一个新存储库,然后克隆gitrepo到一个子目录中作为第二个存储库。再说一次,没关系,只要确保它是你想要的。

这是第一台机器上的裸仓库和第二台机器上的一个仓库的工作方式:

第一台机器:

git init --bare gitrepo.git

第二台机器:

git clone user@server:~/gitrepo.git
cd gitrepo
touch test
git add test
git commit -a

# '-u' tells git to track the remote master branch with your local master branch
git push -u origin master
于 2012-05-24T15:43:48.023 回答
0

参考“为什么我不能推送到这个裸仓库?

尝试做:git push --set-upstream origin master

于 2014-04-18T06:53:38.297 回答