我一直在相对较短的时间内使用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执行了拉动:
git状态:
$ git status
# On branch master
nothing to commit, working directory clean
git branch:
$ git branch
* master
我究竟做错了什么?
您可以指定要拉出的分支:
git pull origin master
或者你可以设置它,以便你的本地主分支跟踪github主分支作为上游:
git branch --set-upstream-to=origin/master master
git pull
克隆存储库时会自动为您设置此分支跟踪(仅适用于默认分支),但如果将远程数据库添加到现有存储库,则必须自行设置跟踪。值得庆幸的是,git给出的建议很容易记住该怎么做。
见: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
ComputerDruid的答案很棒,但我认为除非您愿意,否则必须手动设置上游。我正在添加这个答案,因为人们可能认为这是必要的一步。
如果您指定要拉出的遥控器,则此错误将消失,如下所示:
git pull origin master
请注意,origin
是远程的名称,master
是分支名称。
1)如何检查遥控器的名称
git remote -v
2)如何查看存储库中可用的分支。
git branch -r
我经常遇到这个确切的消息,因为我通过git checkout -b <feature-branch-name>
创建了一个本地分支,而没有先创建远程分支。
完成所有工作并在本地提交后,修复程序是git push -u
,它创建了远程分支,推送了我的所有工作,然后是合并请求URL。
我正在尝试上面的示例,无法让它们与我在另一台计算机上创建的(非主)分支同步。为了背景,我在计算机A(git v 1.8)上创建了这个存储库,然后将存储库克隆到计算机B(git 2.14)上。我在comp B上做了所有更改,但当我尝试将更改提取到计算机A时,我无法这样做,得到相同的上述错误。与上述解决方案类似,我必须这样做:
git branch --set-upstream-to=origin/<my_repository_name>
git pull
略有不同,但希望有所帮助
1)git branch --set-upstream-to = origin / <master_branch>
feature / <your_current_branch>
2)去拉