我有两个不同版本的git.在1.6.2版本中,git push没有-u选项.它只出现在1.7.x版本中.
从文档中,-u它与变量有关
branch.<name>.merge
Run Code Online (Sandbox Code Playgroud)
在git config.该变量如下所述:
Defines, together with branch.<name>.remote, the upstream branch
for the given branch. It tells git fetch/git pull which branch to merge.
Run Code Online (Sandbox Code Playgroud)
什么是上游分支?
我很难理解git-fetch的细微差别.我知道做一个fetch,将远程refs提取到本地跟踪分支.
我有几个问题:
是否有可能本地跟踪分支不存在?如果是,那么它会自动创建吗?
如果我执行fetch并指定非跟踪分支作为目标,会发生什么?
git-fetch的手册页指定:
git-fetch <options> <repository> <refspec>
Run Code Online (Sandbox Code Playgroud)我如何使用refspec从远程主站获取内容到其远程跟踪分支?我相信如果我现在的HEAD在主人身上并且我跑了,这可能是可能的
git fetch origin master
但是,我可以使用<+?src:dest>refspec来实现同样的目的吗?我认为这将有助于我更好地理解这些概念.
还有一个问题:
我的.git/config文件有以下行用于获取(仅显示相关行):
fetch = +refs/heads/*:refs/remotes/origin/*
Run Code Online (Sandbox Code Playgroud)
有人可以解释这条线的确切含义吗?
似乎我可以从远程存储库中拉出或推送到一个分支,从/到我正在处理的分支.如果是这样,那么远程跟踪分支的目的是什么?
它只是为了检查分支并看到它的样子吗?看起来远程跟踪分支就像是远程分支的镜像.
仅供参考:我对git很新,但已阅读并重新阅读了许多教程,但我仍然不清楚这一点!
谢谢!