虽然git切换分支百度一大堆,但是还是像自己记录下。
背景:可以查看gitlab的代码,由于不知道具体分支的具体内容,直接git clone了项目代码,用sonar scanner跑起来报错,spring boot的依赖库有参数,没法读取。然后就去开发那看了下他的代码,跟我clone的不一样,同样的项目,代码不一样,瞬间很奇怪。于是问了下,原来不是同一个分支。于是,我将本地之前的代码删了,将gitlab的代码切换到develop分支,然后复制地址,git clone了一下。发现和原来的问题一样。于是有了这篇文章
原理:git clone 默认是master分支,如果需要切换分支,则git checkout
命令:
[root@localhost xxx]# git checkout -b develop remotes/origin/develop
分支 develop 设置为跟踪来自 origin 的远程分支 develop。
切换到一个新分支 'develop'
checkout的时候需要带上-b参数,不然会报错:error: pathspec 'remotes/origin/develop' did not match any file(s) known to git.
前面的develop是本地的名字,后面的remotes/origin/develop 是gitlab上的分支名字
1.gitlab上的分支名字的获取:git branch
[root@localhost xxx]# git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/bak
remotes/origin/develop
remotes/origin/feature-SettlementPush
remotes/origin/feature-addPayMessageTip
2.本地名字的对应寻找:git branch
[root@localhost xxx]# git branch
* develop
master