gitolite:新存储库的默认远程

gitolite:新存储库的默认远程,git,gitolite,Git,Gitolite,我已经安装了gitolite(目前在本地进行实验),它似乎可以工作,只是新的存储库在git克隆后默认不会跟踪远程。如果我没记错的话,当我从github.com克隆一个存储库时,它已经能够推拉了 以下是我尝试过的: $ git clone git@localhost:sandbox Cloning into sandbox... warning: You appear to have cloned an empty repository. $ echo "A" > README $ git

我已经安装了gitolite(目前在本地进行实验),它似乎可以工作,只是新的存储库在git克隆后默认不会跟踪远程。如果我没记错的话,当我从github.com克隆一个存储库时,它已经能够推拉了

以下是我尝试过的:

$ git clone git@localhost:sandbox
Cloning into sandbox...
warning: You appear to have cloned an empty repository.
$ echo "A" > README
$ git add README
$ git commit README -m 'test'
$ 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 'git@localhost:sandbox'
当我尝试显式推送时,一切都正常:

$ git push origin master
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 426 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
To git@localhost:sandbox
 * [new branch]      master -> master
真的需要这个额外的步骤吗?是否可以默认设置?在github上是这样的,不是吗


谢谢

第一次git推送总是需要指定要推送的分支

git push -u origin master
然后,可以从同一分支进行下一次推送,如您所愿:

git push
发件人:

特殊的refspec
(或允许非快进更新的
+:
)指示git推送“匹配”分支:对于本地端存在的每个分支,如果远程端已经存在同名分支,则远程端将被更新。
如果找不到明确的refspec,这是默认操作模式

因为您克隆了一个空存储库,所以第一次推送没有找到任何匹配的分支(上游repo'
origin
'上没有分支)

注:见“”:

git推送的默认策略将随git 2.0(或者git1.9)而改变

推出了一种新的推送模式,“
simple
”,它是“
当前
”和“
上游
”的交叉点。
git push
”如果没有任何refspec,则仅当设置为跟踪远程存储库中同名的分支时,才会将当前分支推送到远程存储库中的同名分支上 计划是在未配置默认值时,将此模式设为新的默认值


因此,在
git push-u origin master
中,
-u
--设为上游
)在这里很重要(不仅仅是将同名分支推送到远程“
origin
”,而是远程跟踪分支。

您可以使用
git branch--设为上游
命令,例如:

git branch——设置上游开发源代码/develope

据我所知,对于新的存储库/服务器,不再推荐gitosis。最好使用gitolite。哎呀,我实际上在使用gitolite,但在这个问题上犯了一个错误。现在已经解决了。谢谢,所以在此期间我会习惯它。所以github可能会为您初始化repou、 我会在第一次使用虚拟回购进行核实。