我克隆了一个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拉动存储库,当然因为上面的错误而失败..
答案 0 :(得分:114)
修改:对于较新版本的Git,我们已弃用--set-upstream master
,您应该使用--set-upstream-to
代替:
git branch --set-upstream-to=origin/master master
根据提示,您可以运行:
git branch --set-upstream master origin/master
之后,您只需运行git pull
即可更新代码。
答案 1 :(得分:90)
我遇到了同样的问题并使用此命令修复了它:
$ git push -u origin master
在帮助文件中,-u基本上设置了pulls的默认值:
-u, --set-upstream`
For every branch that is up to date or successfully pushed, add
upstream (tracking) reference, used by argument-less git-pull(1) and
other commands. For more information, see branch.<name>.merge in
git-config(1).
答案 2 :(得分:48)
尝试以下命令:
git pull origin master
git push -u origin master
答案 3 :(得分:7)
使用
切换回主分支$ git checkout master
然后运行git pull
操作
$ git pull origin/master
之后,您可以再次切换回my_branch
。
答案 4 :(得分:5)
@alesko:仅在结帐git pull
后才能my_branch
仅更新master
分支。
因为git pull
也会合并到当前分支 - &gt;在您的方案中my_branch
@Simon:这也会推动。那是为什么?
$ git branch -u origin/master
Branch master set up to track remote branch master from origin.
并根据文档:
-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.
答案 5 :(得分:4)
首先,确保你在正确的分支上 然后(仅一次):
git branch --track
之后再次起作用:
git pull
答案 6 :(得分:4)
您可能有多个分支。而你目前的分支机构并未将其上游设置为远程。
解决此问题的步骤:
git checkout branch_name
git branch --set-upstream-to=origin/remote_branch_name local_branch_name
e.g。
// this set upstream of local branch develop to remote branch origin/develop,
git branch --set-upstream-to=origin/develop develop
执行此操作后,当您执行git pull
时,它将从指定分支拉出。
答案 7 :(得分:2)
试试这个
git checkout master
git pull origin master
答案 8 :(得分:2)
您可以指定要拉的分支:
git pull origin master
或者你可以设置它,以便你的本地主分支跟踪github主分支作为上游:
git branch --set-upstream-to=origin/master master
git pull
在克隆存储库时自动为您设置此分支跟踪(仅适用于默认分支),但如果将远程数据库添加到现有存储库,则必须自行设置跟踪。值得庆幸的是,git给出的建议很容易记住该怎么做。
- 显然,在git 1.9.x中不推荐使用set-upstream。 继续前进你想要使用像
这样的东西git branch -u origin/master
假设你已经检查过主人。如果不,
git branch -u origin/master master
将有效
答案 9 :(得分:1)
您需要为当前分支设置跟踪(上游)
git branch --set-upstream master origin/master
已弃用,而不是您可以使用--track flag
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.
答案 10 :(得分:1)
对我有用的是: git branch --set-upstream-to = origin master 当我再次拉动时,我只得到了主人的更新,警告就消失了。
答案 11 :(得分:1)
如果像我这样你需要一直这样做,你可以设置一个别名,通过在.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
。
答案 12 :(得分:0)
为了下载更新:
git fetch origin master
但是,这只会更新名为origin/master
的引用。更新本地master
的最佳方法是在另一条评论中提及的结帐/合并。 如果,您可以保证本地master
未与origin/master
所在的主干分歧,您可以使用git update-ref
将您当前的master
映射到新点,但这可能不是定期使用的最佳解决方案......
答案 13 :(得分:0)
不推荐使用此命令:git branch --set-upstream master origin/master
因此,在尝试设置跟踪时,这是对我有用的命令:
git branch --set-upstream-to=origin/master master