美文网首页
git工作流

git工作流

作者: YQY_苑 | 来源:发表于2018-08-16 10:38 被阅读0次

集中式工作流

image.png

集中式工作流以中央仓库作为所有项目所有修改的单点实体,也就是说改工作流只有master一个分支,所有的修改提交到这个分支上。

步骤:

  1. 首先假设中央仓库已将建好地址是ssh://user@host/path/to/repo.git,开发团队的所有人clone一份

    git clone ssh://user@host/path/to/repo.git
    
    
  2. 假设小明在自己的工作目录修改增加文件,跟踪文件,提交

    git status # 查看本地仓库的修改状态
    git add # 暂存文件
    git commit # 提交文件
    
    
  3. 小明的开发完成了,推送到中央仓库

    git push origin master
    
    

由于中央仓库自从小明克隆以来还没有被更新过,所以push操作不会有冲突,成功完成。

  1. 小红在之后也完成了自己的开发,需要推送到中央仓库

    git push origin master
    
    

    但是由于小红的本地仓库历史已将和中央仓库有了分歧,所以会报错,git拒绝推送

  2. 这时小红要解决冲突,她要先pull小明的更新到她的本地仓库合并上她的本地修改后,再重试。

    git pull --rebase origin master
    git push origin master
    
    

    --rebase选项告诉Git把小红的提交移到同步了中央仓库修改后的master分支的顶部,如下图所示:

image.png
  1. 如果小红和小明开发的是不同的功能,不大可能在rebase的时候冲突,若果有Git在合并有冲突的提交处暂停rebase过程,输出下面的信息并带上相关的指令:

    CONFLICT (content): Merge conflict in
    然后小红用 git status 来查看哪里有问题,查看unmergeed paths
    接着小红修改这些文件的冲突,重新提交

    git status
    //小红 fix conflics
    git add somefile
    git rebase --continue
    git push origin master
    
    

    要做的就这些了。Git会继续一个一个地合并后面的提交,如其它的提交有冲突就重复这个过程。
    如果你碰到了冲突,但发现搞不定,不要惊慌。只要执行下面这条命令,就可以回到你执行git pull --rebase命令前的样子:

    `git rebase --abort`

### 功能分支工作流

*   功能分支工作流的核心是所有的功能开发应该有一个单独的分支,而不是在master分支上
*   功能分支工作流和集中式工作流一样都使用中央仓库,并且master分支还是代表了正式项目的历史,但不是提交本地历史到master上而是开发者每次在开发一个新的功能时都新建一个分支,在这个分支上开发新功能。
*   在master分支和功能分支之间,Git是没有技术上的区别,所以开发者可以用和集中式工作流中完全一样的方式编辑. 暂存和提交修改到功能分支上。

    #### 步骤:

    1. 开发人员小红开发一个新功能 new-feature

    ```
    git pull  origin master
    git checkout -b new-feature 
    git status
    git add
    git commit
    git push -u origin new-feature

    ```

    然后小红没有merge到 master的权限,所以小红发了一个pull request 到给项组的大家一起review 代码,提出评论或修改建议,

2. 要再做修改,小红用和功能第一个迭代完全一样的过程。编辑. 暂存. 提交并push更新到中央仓库。小红这些活动都会显示在Pull Request上,小黑(项目组长)和其他项目人员可以断续做评注。
如果小黑有需要,也可以把marys-feature分支拉到本地,自己来修改,他加的提交也会一样显示在Pull Request上

3. 一旦大家讨论同意了发布这个功能后,项目组长小黑可以的接受Pull Request,就可以合并功能到稳定项目代码中

    ```
    git checkout master
    git pull
    git pull origin marys-feature
    git push

    ```

7. 与此同时,小明在做和小红一样的事
    当小红和小黑在marys-feature上工作并讨论她的Pull Request的时候,小明在自己的功能分支上做完全一样的事。

相关文章

  • Git工作流指南

    今天看了一下翻译的git工作流指南,简单总结一下。 Git工作流指南Git工作流指南:集中式工作流Git工作流指南...

  • Git基础

    一、Git 工作流程 本章节我们将为大家介绍 Git 的工作流程。 一般工作流程如下: 克隆 Git 资源作为工作...

  • Git 的各种工作流程

    Git 的各种工作流程 常见的git工作流程 Centralized Workflow (集中式工作流)、Feat...

  • git

    GIT git工作流 集中工作流 功能分支工作流 gitflow工作流master分支存放所有正式发布的版本,可以...

  • Git版本管理软件初识 2019-01-26

    git 是什么? “git是版本控制系统。” git 的工作流程? “有三种工作流程: Git flow Gith...

  • Git工作流

    一、Git常见工作流 Git三种常见的工作流:Git Flow、GitHub Flow 、GitLab Flow ...

  • 基于jgitflow插件使用git flow

    本文使用jgitflow插件简化实现git flow工作流程,具体流程参考Git工作流程最佳实践--git flo...

  • Git使用学习网址

    Git工作流指南 git merge 和 git rebase 小结

  • 实战 | git工作流与团队协作方式

    一、git协作方式 1. git的工作流 目前项目使用的是git来进行项目管理(需要熟悉git的工作流)、git的...

  • 说说git(二)

    上篇文章《说说git(一)》简要的介绍了git的基本信息及要点,本篇主要说下git的工作流,git工作流是git仓...

网友评论

      本文标题:git工作流

      本文链接:https://www.haomeiwen.com/subject/jzdgbftx.html