为什么我在远程git存储库上有多个跟踪分支?

时间:2017-07-31 05:07:03

标签: git github

我即将执行一个fork的更新,我为github项目做了一段时间。当我试图查看远程存储库时,我看到了:

me@Bedrock:~/Downloads/git_proj/git_proj$ git remote show origin
* remote origin
  Fetch URL: https://github.com/jsmith/git_proj.git
  Push  URL: https://github.com/jsmith/git_proj.git
  HEAD branch: master
  Remote branches:
     api-consistency               new (next fetch will store in remotes/origin)
     gp-1                          tracked
     gp-2                          new (next fetch will store in remotes/origin)
     master                        tracked
     refs/remotes/origin/new_conv_ops stale (use 'git remote prune' to remove)
     revert-6817-getfullargspec    new (next fetch will store in remotes/origin)
     tf-gp                         new (next fetch will store in remotes/origin)
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (local out of date)

我不明白为什么多个分支显示为被跟踪。我不应该只跟踪主分支吗?如果是这样,为什么gp-1分支显示为被跟踪?它只是意味着我可以跟踪这个分支,如果我想的话?

我是否相信我的本地主分支将从远程主分支推送/拉出,但如果我想,我可以从任意远程分支推送/拉出其他本地分支?

2 个答案:

答案 0 :(得分:1)

使用遥控器的Git documentation可以很好地解释您的输出。要在此处重复输出:

HEAD branch: master
Remote branches:
   api-consistency               new (next fetch will store in remotes/origin)
   gp-1                          tracked
   gp-2                          new (next fetch will store in remotes/origin)
   master                        tracked
   refs/remotes/origin/new_conv_ops stale (use 'git remote prune' to remove)
   revert-6817-getfullargspec    new (next fetch will store in remotes/origin)
   tf-gp                         new (next fetch will store in remotes/origin)

标记为tracked的分支,例如gp-1,是遥控器上存在的那些已经在本地拉出的分支。另一方面,标记为new的分支表示它们存在于遥控器上但您尚未在本地存在。

此外,HEAD分支标记为master表示master是某些操作的默认分支,例如git pull。如果您在本地发出git pull但未明确指定要合并的分支,则会使用master

答案 1 :(得分:0)

您在分行master。所有推送和拉动都将完成master。 删除您不想要的分支:

git branch -d <branch name>

要远程删除它们,请使用:

git push origin --delete <branch name>

要更改任何分支推送/拉出的位置,请使用:

git branch --set-upstream <your_local_branch> <your_new_remote/branch_name>