使Git不跟踪所有分支

使Git不跟踪所有分支,git,git-fetch,Git,Git Fetch,我有4个远程分支:A、B、C、D。A和B不再与我相关,但我想远程保留它们。因此,当我执行git fetch时,我只希望获取C和D 如何签出特定分支 还有几点要注意:Git不在乎你的提交在哪里 Git有一个大的内容文件.pack,它存储存储库的所有内容。执行fetch时,它只是从远程执行所有内容。Git在该文件中没有看到任何分支 签出分支git时,签出此分支的最新提交。当然,您可以移动和更改,并将其设置为任何其他提交 关键是git不关心标记、分支等,它只是跟踪内容,因为sommit存储了其父git

我有4个远程分支:A、B、C、D。A和B不再与我相关,但我想远程保留它们。因此,当我执行git fetch时,我只希望获取C和D

如何签出特定分支 还有几点要注意:Git不在乎你的提交在哪里

Git有一个大的内容文件.pack,它存储存储库的所有内容。执行fetch时,它只是从远程执行所有内容。Git在该文件中没有看到任何分支

签出分支git时,签出此分支的最新提交。当然,您可以移动和更改,并将其设置为任何其他提交

关键是git不关心标记、分支等,它只是跟踪内容,因为sommit存储了其父git,所以它知道如何从这个文件中提取上一次提交

总结 Git不跟踪分支或标记。它只是在内部存储它们的SHA-1,并且知道如何在需要时提取它们


谢谢你的解释。我们为每个任务创建一个特性分支。我想保留所有的分支,但当我去拿的时候,我会收到一堆,甚至是那些非常古老的分支。使用git fetch-depth=I可以限制分支,但是还有其他方法吗?如果分支是在本地获取的,为什么您会在意呢?您还可以这样做来从服务器中删除旧的已删除数据:git fetch-all-pruneThe深度仅限制要获取的提交数。与git克隆深度相同,但它与不获取其他分支无关。我关心的是,团队中有人可以获取分支并从中进行选择。有没有一种方法可以让分支保持在远程位置,而不使用fetch下载它们?它们就在那里,您不需要获取它们。如果您希望在不提取的情况下使用它们,您可以简单地将它们检出,并创建一个本地分支来处理它们。如果您在remote:git checkout origin/A上有分支A,那么您现在处于分离头中,因为您没有签出本地分支,您必须创建分支才能更新它
# fetch a remote branch from remote but the catch here is that the branch
# will not have a tracking branch. It will be checked out locally. 
git fetch <remote> <remote branch>:refs/remotes/<remotename>/<local branch>