差异b / w $ git pull和$ hg pull

时间:2011-08-16 22:32:00

标签: git mercurial

Steve Losh: A Guide to Branching in Mercurial -

  

Mercurial默认会推/拉所有分支,而git只会推/拉当前分支。

我想知道我的理解是否正确:

我发现当我执行git pull时,我实际上从所有分支执行 fetchmerge只发生在我当前的分支上我坐在这是非常接近mercurial,其中pull从遥控器获取所有内容;但还不 merge

mercurialpush发送所有内容,但需要显式update才能合并。我对git'操作的push行为不太确定。

2 个答案:

答案 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的默认值。

http://kernel.org/pub/software/scm/git/docs/git-push.html