当我在我的gitolite存储库上创建一个新的repo时,我总是必须输入以下命令才能开始将代码推送到服务器.
git push origin master:refs/heads/master
它有什么作用 ?
我的猜测是与头部参考有关,不确定.有人可以向我解释一下吗?
Lil*_*ard 28
这个命令有三个部分:
git push
Run Code Online (Sandbox Code Playgroud)
这将调用push命令
origin
Run Code Online (Sandbox Code Playgroud)
这会命名您要推送的遥控器.这是存储在.git/config中的一个名为遥控器(您可以列出这些git remote),一个URL或.表示当前存储库的令牌.
master:refs/heads/master
Run Code Online (Sandbox Code Playgroud)
这称为"refspec",您可以在手册页中阅读git push.但总的来说,它由两部分组成,用冒号分隔.第一部分是本地分支的名称,第二部分是远程存储库(在本例中为origin)的分支的名称.这个特殊的refspec可以缩短为master:master.
一般来说,人们可以进一步缩短refspec.只是指定master为refspec相当于在遥控器上使用相同的名称,所以master就像master:master.
master:refs/heads/master 是一个refspec。
refspecs 的形式 +<src>:<dst>
因此,此处master是您要推送到refs/heads/master远程(来源)上的refspec的本地仓库上的ref 。实际上master是缩写refs/heads/master。
实际上,您可以这样做git push origin master,它将本地的master推送到远程的master。仅当您要推送到其他引用时,才需要显式指定目标引用。
同样也 git push具有默认行为,在您进行第一次推送并在遥控器上创建分支(master)之前,情况可能并非如此。因此,似乎您需要执行所提到的命令。请参阅手册
| 归档时间: |
|
| 查看次数: |
16129 次 |
| 最近记录: |