也许是一个重复的问题,尽管我试图从现有问题中找到答案但却失败了。
我使用命令在服务器上创建了一个git repo:
mkdir gitrepo
cd gitrepo
git init
然后从另一台机器上我试图将文件推送到这个仓库但失败了。
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 那些得到同样问题的人可以参考这个。
答案 0 :(得分:6)
git push [remote-name] [branch-name]
。例如git push origin master
答案 1 :(得分: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
答案 2 :(得分:0)
参考" Why can't I push to this bare repository?"
尝试:git push --set-upstream origin master