gitolite:新存储库的默认远程
我已经安装了gitolite(目前在本地进行实验),它似乎可以工作,只是新的存储库在git克隆后默认不会跟踪远程。如果我没记错的话,当我从github.com克隆一个存储库时,它已经能够推拉了 以下是我尝试过的: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
$ 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、 我会在第一次使用虚拟回购进行核实。