我最近开始使用 Git。通常我使用eclipse Egit,很少使用git shell。在浏览了很多关于 Git 及其分支的材料之后,我仍然对此感到困惑。
我知道关于同一主题的 Stack Overflow 上有 n 个问题,但到目前为止,我只是增加了我的困惑,或者我对分支的知识还不够成熟。因此,关于我的理解,我提出了第 n + 1 个问题。
有人可以确认我的理解是否正确:
- 有两种类型的分支:本地分支和远程分支,其中本地分支是本地存储库上的分支,远程分支是远程存储库上的分支
- 第三种分支称为远程跟踪分支,每当我们从远程分支获取更改时,它会自动调整其头部以匹配其跟踪的分支。
- 所以一个分支只能跟踪一些远程分支而不是任何本地分支。这个对吗?
- 当我克隆远程存储库时,会自动创建两种类型的分支,如下所示:
- 本地分支称为master。
- 一个本地远程跟踪分支,它跟踪远程存储库的主分支。
- 我的本地主分支(在上面 4.1 中提到)可以跟踪在本地创建的远程跟踪分支(在 4.2 中提到)吗?
- 如果是,我猜它会自动设置为跟踪这个分支,这就是为什么我不需要做任何特别的事情来从我的工作目录中获取/推送到远程存储库的更改,对吧?因此,当我使用 Eclipse 的团队同步获取更改时,会发生以下事情
- 远程分支中的更改来自本地远程跟踪分支 (4.2)
- 由于我的本地主分支(4.1)设置为跟踪远程跟踪分支(4.2),它们进入我的本地主分支(4.1)。
- 他们从我的主分支进入工作目录,对吗?
- 当我尝试推送更改时,同样会发生相反的情况对吗?