繁体   English   中英

远程跟踪分支和远程分支之间有什么区别?

[英]What is the difference between a remote tracking branch, and a branch on a remote?

似乎我可以从远程存储库中拉出或推送到一个分支,从/到我正在处理的分支。 如果是这样,那么远程跟踪分支的目的是什么?

它只是为了检查分支并看到它的样子吗? 看起来远程跟踪分支就像是远程分支的镜像。

仅供参考:我对git很新,但已阅读并重新阅读了许多教程,但我仍然不清楚这一点!

谢谢!

你是对的 - 远程分支确实在远程存储库中镜像分支。

远程分支和远程跟踪分支都用于引用格式refs/remotes/<remote-name>/<branch-name> ,例如作为origin/master (请注意,这有时会与跟踪远程分支的分支的概念混淆,例如,您的主分支与origin / master关联。术语很不幸,但我们确实如此。)

远程跟踪分支的目的是记住远程存储库中分支的最后已知位置。 这对于git pull工作是必要的; 它从远程(原始主分支)上的分支获取,将其存储在远程跟踪分支( origin/master )中,然后在本地进行合并。 提交只能在本地创建,合并只能在工作树中完成,所以这是完全必要的!

如您所述,远程跟踪分支对于检查远程存储库中发生的情况也很有用。 默认情况下, 所有远程分支都有远程分支,因此您可以轻松使用git remote update [--prune] <remote>git fetch <remote>来更新它们,然后检查它们并在它们中播放它们喜欢。 请注意,您可以执行除了检查之外的事情 - 您可以对它们进行git diff origin/mastergit diff origin/master ),找出您没有的提交源( git log master..origin/master ),或者其他任何你喜欢。 由于所有历史考试都是本地的,因此远程分支必须在那里供您使用。

由于git push影响远程分支,它自然会更新远程跟踪分支; 改变原点的主人然后假装它仍然处于旧位置直到你拿到它是不是很聪明! 但它实际上并不依赖于远程跟踪分支。 (如果设置push.default到跟踪, 它将使用您的跟踪配置,如主跟踪出身的主人,来决定推什么,但它仍然没有真正依赖于远程跟踪分支)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM