新建分支分两种情况:1、远程已有分支,检出远程分支创建本地分支;2、远程没有分支,根据不同情况创建本地分支。
远程已有分支
方法一:
$ git checkout -b <本地分支名> <remote>/<远程分支名> #检出远程分支,并创建本地名称
这种方式经常会报下面这个错误:
fatal: 'origin/province/xinjiang/V4-4-1(1-3-0)' is not a commit and a branch 'feature/xujingjian-xj-v4-4-1-1.3.0' cannot be created from it
远程分支新创建还没有commit过,不能从它创建新分支
方法二:
$ git checkout --track <remote>/<远程分支名> #检出远程分支,并用远程分支名称做为本地分支名称
方法三:
$ git switch -c <本地分支名> <remote>/<远程分支名> #检出远程分支,并创建本地名称
方法四:
$ git switch --track <remote>/<远程分支名> #检出远程分支,并用远程分支名称做为本地分支名称
方法五:
先创建本地分支,再设置此分支的上游远程分支,然后拉取代码
$ git branch <本地分支名> #新建本地分支
$ git branch --set-upstream-to=<remote>/<远程分支> <本地分支> #指定本地分支的上游分支
$ git pull
远程没有分支
1、新建本地分支
$git branch <本地分支名> #创建分支,但不会切换
$git checkout -b <本地分支名> #创建分支,同时切换到新分支
$git switch -c <本地分支名> #创建分支,同时切换到新分支
2、拉取远程分支代码:git pull <remote> <branch>
$git pull origin <远程分支名> #在本地分支还没有上游分支的情况下,通过此语句拉取远程代码。
3、推送本地代码:git push <remote> <本地分支名>[:远程分支名]
$git push origin 本地分支名[:远程分支名]
如果远程分支不存在,则创建远程分支。如果省略远程分支名,则创建的远程分支与本地分支同名。
如果同时要把远程分支设置为本地分支的上游,需要加上参数set-upstream:git push --set-upstream <远程主机名> <本地分支名>[:远程分支名]