0%

git-branch

  • master
    主分支, 功能稳定
  • develop
    开发分支, 体现开发状态的分支
    用于 DEV, QA 环境测试构建, 在 PRD 环境测试完成后合并到 master 分支
  • feature
    新功能开发分支
    从 master 或 develop 创建该分支
    用于本地环境开发自测, 开发完成后合并到 develop 分支
  • release
    发布分支, 准备发布上线的分支
    从 develop 创建该分支
    如果 PRD 环境出现问题, 则从 develop 分支开始修复, 再次合并到 release 分支; 如果 PRD 环境测试完成, 功能确定之后, 合并到 master 分支
    允许在 release 分支上做版本修改等小细节处理, 不必合并回 develop
  • hotfix
    线上问题紧急修复
    从 release 或 master 创建该分支
    修复完成后, 需要合并到 develop, release, master

1. 查看分支

1
2
3
4
5
6
# 查看当前分支名称
git branch
# 查看本地与远程仓库有哪些分支
# -a 表示查看所有分支
# -v 显示最近更新相关信息
gti branch -av

2. 创建+切换分支

1
git checkout -b dev origin/dev

3. 切换分支

1
git checkout dev

4. 手动建立追踪关系

1
2
git branch --set-upstream dev origin/dev
git branch --set-upstream-to=origin/${branch} master

5. 获取代码更新

1
2
3
4
5
6
git fetch
git merge

git pull

git pull origin dev:dev

6. 合并分支

1
2
3
4
# 先切换到要主分支
git checkout ${branch_id}
# 合并作业分支到主分支
git merge ${another_branch_id}

7. 删除分支

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 删除本地分支
# -D, --delete 表示删除分支
# 不能删除当前分支, 需要切换到其他分支后删除
git branch -D ${local_branch_id}

# 删除远端分支
# 如果需要重命名远程分支, 没有直接命令, 只能删除后重新推送
git push -d origin ${remote_branch_id}
# 或者推送一个空分支
git push origin :${remote_branch_id}

# 删除没有与远程分支绑定的本地分支
git remote prune origin
# 或者
git fetch -p

8. 分支重命名

1
2
3
# -m 表示重命名本地分支名称
git branch -m ${old_name} ${new_name}
# 之后删除远程老分支后重新推送

8.1. 同步远程分支, 删除远端不存在的分支

1
git remote prune origin

9. Resource

Git 分支模型