# git分支
>[success]正常情况下,日常开发,会在分支中进行
## git创建分支
~~~
git branch <branchname>
~~~
## 查看当前所在分支
~~~
git branch #查看本地分支
git branch -r # 查看远程分支
git branch -a #查看所有分支(本地远程)
~~~
>[danger]执行git branch [选项]命令后,会列表所有分支,前面速星号的即为当前所在分支。如图:
![](https://box.kancloud.cn/61f6c17255bb977946e5319808d06d2d_249x323.png)
## 切换分支
~~~
git checkout <branchname>
~~~
## 创建分支并切换到新建分支
~~~
git checkout -b <new_branch> [<start_point>]
~~~
## 删除分支
删除本地分支
~~~
git branch -d <branchname>
~~~
删除远程分支
~~~
git push --delete origin branch-name
~~~
>[danger]多分支时,在推送时,一定要指定分支
~~~
git push origin <branchname>
~~~
## Git也允许手动建立追踪关系
~~~
git branch --set-upstream master origin/next
~~~
>[danger]上面命令指定master分支追踪origin/next分支。
如果当前分支与远程分支存在追踪关系,git pull就可以省略远程分支名。
## 合并分支
>[success]当分支开发完成后,测试没有问题了,最终需要合并到主分支上
>
~~~
git merge <name> 合并某分支到当前分支
~~~
# 常见问题
## 切换分支时,提示:ou need to resolve your current index first。因为产生了冲突。故需要回退到合并前。
>[info]解决方案如下:
~~~
git reset --merge
~~~