创建git新分支时,什么是“track”?

16
我正在使用Aptana和Git。当我要创建一个新的分支时,会出现以下对话框。

enter image description here

我在想那个“track”复选框是做什么用的,以及何时最适合勾选它。
我理解git中跟踪的概念,但主要是针对文件。我似乎不理解它如何应用于创建新分支?
2个回答

12
在这种情况下,track指的是git-checkout和git-branch的--track选项。
当本地分支从远程跟踪分支开始时,git会设置分支以便git pull可以适当地从远程跟踪分支合并。
来自man git-branch
-t, --track
    When creating a new branch, set up configuration to mark the
    start-point branch as "upstream" from the new branch. This
    configuration will tell git to show the relationship between the
    two branches in git status and git branch -v. Furthermore, it
    directs git pull without arguments to pull from the upstream when
    the new branch is checked out.

啊,好的。那么如果我从主分支创建一个新的分支并跟踪它。我可以在我的分支上继续工作,同时拉取在我工作期间在主分支上进行的更改吗?如果我理解正确,请告诉我,谢谢! - Sajan Parikh
然而,这两个分支都是本地的。那么合并会在什么时候进行? - Sajan Parikh
是的,你说的没错。合并将在任何情况下都会在 git pull 进行,即使跟踪的分支是本地的。 - Marco Leogrande
@MarcoLeogrande - 句子"When a local branch is started off a remote-tracking branch"来自于git-branch手册。难道它不应该被表述为:"当一个本地分支从一个远程跟踪分支开始时"? - slm

11

在阅读了评论后,我仍然不理解 Marco 提供的答案。所以我决定自己进一步探究并用通俗易懂的语言回答...


本地分支:是从Git主分支分离出来的路径。主分支是最终提交更改的主要路径。该分支是本地的,没有链接到远程分支。

远程分支:与'本地分支'相同,但位于远程Git上。该分支是远程的,没有链接到本地分支。

远程跟踪分支:

  • 它们用于将本地工作与远程工作连接起来。
  • 当执行git pullgit fetch时,它们知道从哪个远程分支抓取更改。键入git status将指出您超前多少次提交远程分支。

重点是...

使用--track将创建分支,然后自动从所选分支'pull'。因此,在这种情况下(参考问题中的图像),将创建一个名为'feat / password-confirmation'的新分支,并将其与名为'master'的远程分支(远程上的主路径)进行比较

我以为您说主分支是本地的?在本地和远程上,主要路径都称为'master',但仅与git pushgit pull交互。

如果不需要跟踪远程Git,则不需要选中'Track'复选框。


希望有所帮助。

来源


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接