git checkout tag,git pull在分支中失败

139

我克隆了一个 Git 代码库并切换到一个标签:

# git checkout 2.4.33 -b my_branch

这很好,但是当我尝试在我的分支上运行git pull时,Git会报错:

当前分支没有跟踪信息。请指定要与之合并的分支。有关详细信息,请参见git-pull(1)

git pull <remote> <branch>

如果你希望为这个分支设置跟踪信息,你可以使用以下命令:

git branch --set-upstream new origin/<branch>
我希望 git pull 只更新主分支,而不影响我当前的分支(它是一个标签)。是否有可能做到这一点?
我需要这么做的原因是我有一个自动脚本,它总是从 git 拉取存储库,但由于上述错误而失败。

可能是重复的问题:git pull:当前分支没有跟踪信息 - daisy
14个回答

1
我成功的做法是: git branch --set-upstream-to=origin master 再次进行pull时,我只获取了master分支的更新,警告消失了。

1

您需要为当前分支设置跟踪(上游)

git branch --set-upstream master origin/master

已经被弃用,您可以使用 --track 标志代替

git branch --track master origin/master

我也喜欢@casey提到的文档参考:

-u <upstream>
  Set up <branchname>'s tracking information so <upstream> is considered  
  <branchname>'s upstream branch. If no <branchname> is specified,  
  then it defaults to the current branch.

0

该命令已被弃用:git branch --set-upstream master origin/master

因此,在尝试设置跟踪时,这是对我有效的命令:

git branch --set-upstream-to=origin/master master

0
为了只下载更新:
git fetch origin master

然而,这只是更新了一个名为origin/master的引用。更新本地master的最佳方法是在另一条评论中提到的checkout/merge。 如果您可以保证本地master没有与origin/master所在的主干分歧,那么您可以使用git update-ref将当前的master映射到新点,但这可能不是定期使用的最佳解决方案...


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