Steve Losh: A Guide to Branching in Mercurial -
Mercurial默认会推/拉所有分支,而git只会推/拉当前分支。
我想知道我的理解是否正确:
我发现当我执行git pull
时,我实际上从所有分支执行 fetch
但merge
只发生在我当前的分支上我坐在这是非常接近mercurial
,其中pull
从遥控器获取所有内容;但还不 merge
。
在mercurial
中push
发送所有内容,但需要显式update
才能合并。我对git'
操作的push
行为不太确定。
答案 0 :(得分:4)
在Git中,你必须逐个拉/推所有分支。因此,您可以在本地分支机构上工作,而不会弄乱服务器。
您可以指定每次要拉/推的分支:git push origin master
表示您希望将分支主数据推送到原始分支主服务器,这通常是“默认”服务器。
答案 1 :(得分:0)
在没有任何refspec的情况下完成git pull
时会发生什么情况是基于配置(来自git-pull man的默认行为部分):
为了确定在命令行上没有任何refspec参数的情况下运行命令时要获取(并且可选地存储在远程跟踪分支中)的远程分支,请参阅配置变量remote..fetch的值,并且如果没有,则查询$ GIT_DIR / remotes /文件并使用其Pull:
行。除了OPTIONS部分中描述的refspec格式之外,您还可以使用如下所示的globbing refspec:
参/头/ :参/遥控器/来源/
http://www.kernel.org/pub/software/scm/git/docs/git-pull.html
同样由git push
推送的内容取决于配置(和参数)
没有其他配置,就像git push origin :
一样。
可以通过设置遥控器的推送选项来配置此命令的默认行为。
例如,要默认只将当前分支推送到origin,请使用git config remote.origin.push HEAD。任何有效的都可以配置为git push origin的默认值。