1. 复现错误
今天发布某版本的项目,准备创建个v0point1
分支,后期如果修改该版本,直接在该分支上修改即可。
首先,使用git branch v0point1
命令,创建本地分支v0point1
,如下图所示:
其次,使用git checkout v0point1
命令,切换到v0point1
分支,如下图所示:
当然,我们也可以使用git checkout -b v0point1
命令,创建并切换到v0point1
分支。
但在v0point1
分支上,使用git pull
命令拉取远程代码,却报出如下提示:
即There is no tracking information for the current branch.
2. 分析错误
There is no tracking information for the current branch.
,这句话翻译成中文就是当前分支没有跟踪信息
。
当前分支
是指远程分支。
换句话说,我在本地创建了v0point1
分支,并没有关联远程仓库的v0point1
分支,可能有如下两种情况:
-
远程仓库本身就没有
v0point1
分支。 -
远程存在
v0point1
分支,但我没有关联远程仓库。
因而,针对这两种情况,有如下两种解决方法。
3. 解决错误
既然本地分支没有关联远程分支,那就按如下两种方式解决该错误。
3.1 远程有分支
如下图所示,远程存在v0point1
分支,如下图所示:
使用git status
命令,查看本地分支是否为v0point1
,如下图所示:
从图中可知,本地分支已经是v0point1
,我们使用如下命令,合并远程分支:
git branch --set-upstream-to=origin/远程分支名 本地分支名
从Branch 'v0point1' set up to track remote branch 'v0point1' from 'origin'.
这句话可知,本地v0point1
分支已关联远程分支了。
3.2 远程无分支
如下图所示,我把远程分支删了,只有本地有分支,推送到远程、并与远程分支进行关联。
依旧使用git status
命令,查看本地分支是否为v0point1
,如下图所示:
从图中可知,本地分支已经是v0point1
,我们使用如下命令,将本地分支提交到远程仓库:
git push origin 本地分支名
从To create a merge request for v0point1
这句话可以看到,已经创建了远程分支。
使用如下命令,
git branch --set-upstream-to=origin/远程分支名
从Branch 'v0point1' set up to track remote branch 'v0point1' from 'origin'.
这句话可知,本地v0point1
分支已关联远程分支了。
为了验证本地分支是否关联远程分支,检查gitlab
上是否存在v0point1
分支,如下图所示:
gitlab
上已存在v0point1
分支。
4. 总结
如果以上方法,无法解决你的问题,欢迎在评论区留言。