git拉取、获取和克隆是否创建本地和远程跟踪分支?

git拉取、获取和克隆是否创建本地和远程跟踪分支?,git,Git,git clone将创建一对本地和远程跟踪分支 git fetch将仅从以下位置创建(或更新?)远程跟踪分支,而不创建本地跟踪分支: 需要注意的是,当您执行一个导致新的远程跟踪分支关闭的获取时,您不会自动拥有这些分支的本地可编辑副本。换句话说,在这种情况下,您没有新的serverfix分支–您只有一个无法修改的origin/serverfix指针 git pull怎么样?git pull是创建一对本地和远程跟踪分支,还是只创建一个远程跟踪分支?当您执行git pull时,您通常执行git fet

git clone将创建一对本地和远程跟踪分支

git fetch将仅从以下位置创建(或更新?)远程跟踪分支,而不创建本地跟踪分支:

需要注意的是,当您执行一个导致新的远程跟踪分支关闭的获取时,您不会自动拥有这些分支的本地可编辑副本。换句话说,在这种情况下,您没有新的serverfix分支–您只有一个无法修改的origin/serverfix指针


git pull怎么样?git pull是创建一对本地和远程跟踪分支,还是只创建一个远程跟踪分支?

当您执行
git pull
时,您通常执行
git fetch
git merge
,但这里的主要警告是,您不以这种方式创建任何本地分支。合并只发生在您当前拉入的分支上

例如,如果您在master上执行了
git pull origin other_branch
,您将从
origin
中引入最新版本的
other_branch
,但随后您还将把更改合并到master分支中。此操作不会在系统上创建任何本地分支


从远程创建本地跟踪分支的一般方法是使用
git fetch
,然后使用
git checkout
。如果分支已经存在于您的远程存储库中,则只需执行
git checkout new_branch
即可创建一个本地分支,该分支将为您跟踪远程分支。

可能重复@Makoto:根据您的链接,git pull是否正确创建一对本地和远程跟踪分支?否,情况可能并非如此。我以为那个问题的答案会更详细一点,但我想不会。顺便说一句,为了清楚起见,git术语是“local branch”(在“branch”前面有一个形容词)和“remote tracking branch”(在“branch”前面有另一个形容词,通常用连字符表示)。这里应该避免使用组合形容词对“local tracking”,尽管人们(和文档)会说“local branch foo正在跟踪远程跟踪分支上游/foo”,这是令人困惑的、冗余的和冗余的,令人困惑:-),因此经典的git语言…@torek:为什么是“组合形容词对”本地跟踪“在这里可能应该避免”?我从Loeliger 2ed的Git版本控制中看到了术语。是否正确,
git pull
将通过合并更新本地工作目录,而
git fetch
不更新本地工作目录,并在运行
git checkout
之后的
git fetch
之前保持本地工作目录不变?另一个问题。在
git fetch
之后,我有两个选项是否正确:运行
git checkout
为远程跟踪分支创建本地跟踪分支,并签出本地跟踪分支,以便我可以处理获取的提交,或者运行
git merge
将远程跟踪分支合并到当前本地分支?对于第一个问题:
git pull
git fetch&&git merge
,通常是在已知要远程跟踪的分支(即主分支)上完成的。在这种情况下,此操作将更新工作目录。如果已知分支位于远程存储库中,则使用
git checkout
将更新工作目录。关于你的第二个问题:是的,在这种情况下,这是你仅有的两个选择@蒂姆:谢谢。在git pull的合并步骤中,远程跟踪分支是否合并到当前分支中?合并步骤是否修改远程跟踪分支?看见