场景:
一般clone项目时,都是默认clone的master分支,但是开发肯定是在各种feature分支上开发,远程仓库上多个featrue分支,我们如何以远程的featrue分支作为起点,新建分支,并且跟踪到这个featrue分支呢?
直接使用命令
简洁版
- branch
//直接以origin/featrue/a为起点创建本地分支,但不切换工作空间到新分支
//--track:建立跟踪,可以省略
git branch --track featrue/a origin/featrue/a
- checkout
//直接以origin/featrue/a为起点创建本地分支,并切换工作空间到新分支
//-b:切换到新分支
//--track:建立跟踪,可以省略
git checkout -b --track featrue/a origin/featrue/a
啰嗦版,建议不看
- branch
1.同事在远程仓库新增了分支 featrue/a
//更新下分支
2.git pull 或者 git remote update
//如果我们直接使用git branch -a ,会发现并没有featrue/a,如果使用Idea的话,右下角的分支列表也没有新的分支,所以要先更新一下,可以使用git pull 或者 git remote update
3.git branch -a
//以远程仓库origin的featrue/a分支为起点,新建本地分支featrue/a,并跟踪
//--track:建立跟踪,是默认值,可以省略
//featrue/a:是我们本地的分支名字,自定义,一般和远程分支名同名最佳
//origin/featrue/a:
//origin:远程仓库的名称(如果你没有起别的名字,一般就是origin)
//featrue/a:非自定义,远程分支的名字
4.git branch --track featrue/a origin/featrue/a
//发现本地有featrue/a 分支了,新建本地分支成功
5.git branch -a
//试试git pull,成功,说明跟踪远程分支也成功了
6.git pull
//切换到新分支
7.git checkout featrue/a
- cheackout
不多解释了,和branch的区别就是使用checkout会直接切换到新分支
使用IDEA
使用idea有两种方式,其实和命令一样
一:直接checkout
直接创建并切换(用的最多,最简单)
直接选择要切换的远程分支,点击checkout
就会弹出
Checked out new branch g from origin/g
不多解释了,和上面的命令一样
二:先创建本地分支
New Branch from Selected From origin/g
选择 origin/g 为新分支的来源!
上面只是创建,没有跟踪
可以发现这里是空白的,没有建立跟踪
或者使用命令
//查看分支的跟踪关系
git branch -vv
使用命令建立跟踪
$ 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-to=<remote>/<branch> g
发现没有建立跟踪,那按照它的提示来就行了
git branch --set-upstream-to=origin/g
在试试 git pull,成功了
$ git pull
Already up to date.
示来就行了
git branch --set-upstream-to=origin/g
在试试 git pull,成功了
$ git pull
Already up to date.
版权归原作者 nsnsttn 所有, 如有侵权,请联系我们删除。