Git 远程跟踪分支与远程跟踪分支之间的区别是什么?

Git 远程跟踪分支与远程跟踪分支之间的区别是什么?,git,Git,似乎我可以从远程存储库上的分支拉入或推入,从/到我正在处理的分支。如果是这样,那么远程跟踪分支的目的是什么 这仅仅是为了检查分支机构,看看它是什么样子吗?看起来,远程跟踪分支就像远程服务器上分支的镜像 仅供参考:我对git还相当陌生,但已经阅读了很多教程,但我仍然不清楚这一点 谢谢 你说得对-远程分支确实会在远程存储库中镜像分支 远程分支和远程跟踪分支都用于表示形式为refs/remotes//的分支,例如报告为origin/master。(请注意,这有时会与跟踪远程分支的分支的概念相混淆,例如

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

这仅仅是为了检查分支机构,看看它是什么样子吗?看起来,远程跟踪分支就像远程服务器上分支的镜像

仅供参考:我对git还相当陌生,但已经阅读了很多教程,但我仍然不清楚这一点


谢谢

你说得对-远程分支确实会在远程存储库中镜像分支

远程分支和远程跟踪分支都用于表示形式为
refs/remotes//
的分支,例如报告为
origin/master
。(请注意,这有时会与跟踪远程分支的分支的概念相混淆,例如,您的主分支与origin/master关联。术语很不幸,但我们就是这样。)

远程跟踪分支的目的是记住分支在远程存储库中的最后一个已知位置。这是必要的,以便
git pull
工作;它从远程(源站的主分支)上的分支获取,将其存储在远程跟踪分支中(
origin/master
),然后在本地合并该分支。提交只能在本地创建,合并只能在工作树中完成,因此这是完全必要的

正如您所提到的,远程跟踪分支对于检查远程存储库中的情况也很有用。默认情况下,所有远程分支都有远程分支,因此您可以轻松地使用
git remote update[--prune]
git fetch
来更新它们,然后将它们签出,并根据需要使用它们。请注意,除了检查它们之外,您还可以进行其他操作—您可以与它们进行比较(
git diff origin/master
),找出哪些是您没有的(
git log master..origin/master
),或者其他您喜欢的操作。由于所有历史考试都是本地的,所以远程分支必须在那里供您使用

由于
git push
会影响远程中的分支,因此它自然会更新远程跟踪分支;改变origin的主人,然后假装它仍然在原来的位置,直到你取回它,这不是很明智的做法!但它实际上并不依赖于远程跟踪分支。(如果您将
push.default
设置为tracking,它将使用您的跟踪配置(例如主跟踪原点的主跟踪)来决定推送什么。但它实际上并不依赖于远程跟踪分支。)