git 使用流程规范(merge-request)

浏览: 69 发布日期: 2016-12-05 分类: git

git 使用流程规范(merge-request)

如果你的git workflow 采用此模式,谨记一定要忘记 git merge,除了在 master 分支上 git pull 可以使用 git pull,其他分支如果要 git pull应该使用 git pull --rebase
使用 git rebase 的黄金法则就是:分支的开发者尽量是一个人,重写提交历史不会影响别人

  1. 新建分支

    # 创建分之前,先切换到 master 分支,更新到最新版本,确保你的新分支是基于最新版本的master
    # 在 master 分支上基本上只有一个操作 git pull
    git checkout master
    git pull
    # 创建分支 git checkout 命令是切换分支,加上参数 -b 表示如果分支不存在,就创建,且立即切换到新创建的分支
    git checkout -b myfeature
  2. 分支开发

    # 添加工作区改变的文件到暂存区,尽量git add file1 file2, 不提倡 git add *
    git add *
    # 查看当前工作区的状态
    git status
    # 把暂存区内容放入版本库,加上 verbose 参数的话会对变化比较且显示
    git commit --verbose
  3. 撰写提交信息

    git 提交的信息非常重要
    第一行是信息摘要50字以内

    空一行,
    第三行罗列出改天原因,主要变动,注意事项
    切记提交有意义的 commit message

  4. 与主干同步

    # 拉取远端仓库所有变更内容到本地仓库
    # 注意和 git pull 的区别,git pull=git fetch + git merge(rebase)
    git fetch origin

    假设分支 myfeature 是几个人共同开发,这个时候 需要执行

    # 此操作可能会产生冲突,且解决完之后 push 的时候,可能要加上 --force 参数强制推送代码,改变提交历史记录,慎用
    git pull --rebase
  5. 合并 commit
    此处的操作是最复杂的

    #rebase 命令和 merge 相仿,-i参数表示交互模式
    git rebase -i origin/master

    使用交互模式,可以合并同一个分支里面的多个 commit 为一个或者多个,能灵活控制 commit。
    当执行 rebase 发生冲突的时候,先解决冲突文件,使用git add 标志所有冲突为已经解决。 最后 git rebase --continue 完成 rebase 流程

  6. 推送代码到远端

    # push 命令加上 --force 参数,因为 rebase 之后,分支历史改变,跟远程分支不一定兼容
    # 
    git push -u origin myfeature 
  7. 请求代码合并 merge-request

返回顶部