新建分支
1
2
3
4
5
6
7
|
git branch testing
# 新建并切换
git checkout -b testing
# 从指定的分支新建分支
git checkout -b feature/MYFEATURE develop
# checkout并追踪一个远程分支
git checkout --track -b develop origin/develop
|
列出分支
1
2
3
4
5
6
7
8
9
10
|
git branch
# 列出当前分支已经合并过的分支
git branch --merged
# 列出当前分支未合并的分支 -r为remote
git branch --no-merged -r
# 设置pull分支的默认追踪远程分支
git branch --set-upstream-to=<remote>/<branch> master
|
追踪分支
1
|
$ git checkout --track origin/serverfix
|
分支合并
有rebase
和merge
两种方式
推荐公共分支,发布分支合并用merge
, 个人分支,开发分支合并别的分支用rebase
1
2
3
4
|
# merge
git merge develop
# rebase
git rebase develop
|
删除分支
切换分支
1
2
3
|
git checkout branch
# 跳转到之前的分支
git checkout -
|
远程分支
远程分支在本地中也是一个索引,比如origin
的master,在本地为origin/master
,
远程分支无法直接改变,无法切换,只能在和实际的远程分支交互的时候才会更新
更新远程分支
通过fetch
可以更新这些分支
1
|
git fetch origin master
|
推送远程分支
1
2
|
git push origin master
|
拉取远程分支
1
2
3
4
5
|
git pull origin master
# 如果想省略后面的就要设置跟踪的目标
git branch --set-upstream-to=<remote>/<branch> master
# 这样就可以直接
git pull
|
删除远程分支
1
|
$ git push origin :unused_branch
|
重置和远程同步
1
2
|
# 放弃本地的修改, 设置成远程分支的HEAD
git reset --hard origin/master
|
移除远程不存在的分支
1
2
|
# 移除远程仓库上不存在的分支
git fetch -p
|
其它
1
2
|
# 当前的分支名称
git rev-parse --abbrev-ref HEAD
|