当前分支没有跟踪信息

问题描述 投票:418回答:7

我一直在相对较短的时间内使用github,而且我总是使用客户端来执行提交和拉取。我决定昨天从git bash尝试它,我成功创建了一个新的repo和commit文件。

今天我从另一台计算机上对存储库进行了更改,我已经提交了更改,现在我回到家并执行了git pull来更新我的本地版本,我得到了这个:

There is no tracking information for the current branch.
    Please specify which branch you want to merge with.
    See git-pull(1) for details

    git pull <remote> <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream develop origin/<branch>

这个回购的唯一贡献者是我,并且没有分支(只是一个主人)。我在Windows上,我从git bash执行了拉动:

enter image description here

git状态:

$ git status
# On branch master
nothing to commit, working directory clean

git branch:

$ git branch
* master

我究竟做错了什么?

git github git-pull
7个回答
767
投票

您可以指定要拉出的分支:

git pull origin master

或者你可以设置它,以便你的本地主分支跟踪github主分支作为上游:

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

克隆存储库时会自动为您设置此分支跟踪(仅适用于默认分支),但如果将远程数据库添加到现有存储库,则必须自行设置跟踪。值得庆幸的是,git给出的建议很容易记住该怎么做。


33
投票

见:git checkout tag, git pull fails in branch

如果像我这样你需要一直这样做,你可以设置一个别名,通过在.gitconfig文件中添加以下内容来自动完成:

[alias]
    set-upstream = \
       !git branch \
           --set-upstream-to=origin/`git symbolic-ref --short HEAD`

当您看到消息There is no tracking information...时,运行:

 git set-upstream
 git push

感谢https://zarino.co.uk/post/git-set-upstream/


9
投票

ComputerDruid的答案很棒,但我认为除非您愿意,否则必须手动设置上游。我正在添加这个答案,因为人们可能认为这是必要的一步。

如果您指定要拉出的遥控器,则此错误将消失,如下所示:

git pull origin master

请注意,origin是远程的名称,master是分支名称。


1)如何检查遥控器的名称

git remote -v

2)如何查看存储库中可用的分支。

git branch -r

7
投票

我经常遇到这个确切的消息,因为我通过git checkout -b <feature-branch-name>创建了一个本地分支,而没有先创建远程分支。

完成所有工作并在本地提交后,修复程序是git push -u,它创建了远程分支,推送了我的所有工作,然后是合并请求URL。


4
投票

我正在尝试上面的示例,无法让它们与我在另一台计算机上创建的(非主)分支同步。为了背景,我在计算机A(git v 1.8)上创建了这个存储库,然后将存储库克隆到计算机B(git 2.14)上。我在comp B上做了所有更改,但当我尝试将更改提取到计算机A时,我无法这样做,得到相同的上述错误。与上述解决方案类似,我必须这样做:

git branch --set-upstream-to=origin/<my_repository_name> 
git pull

略有不同,但希望有所帮助


3
投票

1)git branch --set-upstream-to = origin / <master_branch> feature / <your_current_branch>

2)去拉


2
投票

尝试

   git pull --rebase

希望这个答案有助于最初在这里回答https://stackoverflow.com/a/55015370/8253662

© www.soinside.com 2019 - 2024. All rights reserved.