the main branches
- master
- develop
git checkout -b myfeature develop
--从develop分支新建分支myfeature
git checkout develop
-- 切换到分支develop
Creating a feature brach
一个新功能的出现,应该创建一个新功能分支,例如myfeature,在该分支上功能开发完毕之后,需要合并到develop上。
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff myfeature
Updating ea1b82a..05e9557
(Summary of changes)
$ git branch -d myfeature
Deleted branch myfeature (was 05e9557).
$ git push origin develop
- --no-ff 参数的作用,确保每次merge都是一次新的commit,避免一个必要的信息的丢失
![](/Users/bjhl/Desktop/git /merge-without-ff@2x.png)
creat a release branch
release 分支是从develop分支新建来的。新功能开发完毕之后,后续在release分支进入bug fixes阶段(这个阶段不应该给在develop上进行)。release分支一般伴随着版本号,如release-1.2
$ git checkout -b release-1.2 develop
Switched to a new branch "release-1.2"
$ git commit -a -m "version number to 1.2"
[release-1.2 74d9424] Bumped version number to 1.2
1 files changed, 1 insertions(+), 1 deletions(-)
bug fixes结束之后,需要将代码merge到master和develop分支(master上每一次merge都是一个版本,伴随着tag)
$ git checkout master
Switched to branch 'master'
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)
$ git tag -a 1.2
$ git checkout develop
Switched to branch 'develop'
$ git merge --no-ff release-1.2
Merge made by recursive.
(Summary of changes)
creat a hotfix branch
hotfix分支来自于master分支.当线上环境有bug需要修复的时候,需要新建hotfix分支,用来修复bug,hotfix分支一般伴随着版本号,如hotfix-1.2.1。
$ git checkout -b hotfix-1.2.1 master
Switched to a new branch "hotfix-1.2.1"
$ git commit -a -m "version number to 1.2.1"
[hotfix-1.2.1 41e61bb] Bumped version number to 1.2.1
1 files changed, 1 insertions(+), 1 deletions(-)
hotfix修完buf完毕之后,也需要将代码同步到master和develop分支。同release分支。
git 命令
- git branch -r
查看远程分支 - git branch -a
查看所有的分支,包括远程和本地分支,*表示当前分支
下面两条命令,表示在当前本地分支合并远程分支
- git merge origin/master
- git rebase origin/master