什么是跟踪分支?

有人可以解释一个“跟踪分支”,因为它适用于git?


这是git-scm.com的定义:


Git中的“跟踪分支”是连接到远程分支的本地分支。当您按下并拉动该分支时,它会自动推送并拉到与其连接的远程分支。


如果您始终从同一个上游分支拉入新分支,并且您不想明确使用“git pull”,请使用此选项。


不幸的是,对于git和来自SVN的新手来说,这个定义对我来说绝对没有意义。


我正在阅读“ Git的实用指南 ”(顺便说一句好书),他们似乎建议跟踪分支是一件好事,并且在创建第一个遥控器(原点,在这种情况下)后,你应该将您的主分支设置为跟踪分支,但遗憾的是,它不包括为什么跟踪分支是一件好事,或者通过将主分支设置为原始存储库的跟踪分支而获得的好处。


有人可以赐教(英文)吗?


MMMHUHU
浏览 1779回答 4
4回答

慕的地8271018

该ProGit本书有一个很好的解释:跟踪分支从远程分支签出本地分支会自动创建所谓的跟踪分支。跟踪分支是与远程分支有直接关系的本地分支。如果你在跟踪分支上并输入git push,Git会自动知道要推送到哪个服务器和分支。此外,在其中一个分支上运行git pull会获取所有远程引用,然后自动合并到相应的远程分支中。克隆存储库时,它通常会自动创建跟踪origin / master的主分支。这就是为什么git push和git pull开箱即用而没有其他参数。但是,您可以根据需要设置其他跟踪分支 - 不跟踪原点分支但不跟踪主分支的分支。这个简单的例子就是你刚看到,运行的例子git checkout -b [branch] [remotename]/[branch]。如果你有Git 1.6.2或更高版本,你也可以使用--track速记:$ git checkout --track origin/serverfixBranch serverfix set up to track remote branch refs/remotes/origin/serverfix.Switched to a new branch "serverfix"要设置名称与远程分支不同的本地分支,可以轻松地使用具有不同本地分支名称的第一个版本:$ git checkout -b sf origin/serverfixBranch sf set up to track remote branch refs/remotes/origin/serverfix.Switched to a new branch "sf"现在,您的本地分支sf将自动推送和拉出origin/serverfix。

慕侠2389804

Pro Git书中 提到:跟踪分支是与远程分支有直接关系的本地分支不完全是。SO问题“ 难以理解git-fetch ”包括:没有本地跟踪分支的概念,只有远程跟踪分支。所以origin/master是一个远程跟踪分行master的origin回购。但实际上,一旦你建立了上游分支关系:像当地的一个分支 master和远程跟踪分支一样 origin/master然后,您可以将其master视为本地跟踪分支:它跟踪远程跟踪分支 origin/master,该分支又跟踪上游存储库 的主分支origin。

慕妹3146593

以下是关于GIT跟踪分支机构的个人学习笔记,希望它对未来的访问者有所帮助:跟踪分支和“git fetch”:

慕工程0101907

这就是我添加跟踪分支的方式,以便我可以从它进入我的新分支:git branch --set-upstream-to origin/Development new-branch
打开App,查看更多内容
随时随地看视频慕课网APP