git 使用

原创 2016年06月01日 11:44:56

一、git安装配置

1、安装git工具(gitbash)

2、生成ssh key  

git bash中输入 $ ssh-keygen -t rsa -C "your email address"  

过程中如果没有更改生成地址,则在 C:/Users/你的名字/.ssh/目录下,打开id_rsa.pub文件。全选,复制,去web端add ssh key

在git bash 中: git clone 地址,同步代码

二、git使用规范

开发流程

  1. 新建开发功能分支
    1. git checkout develop
    2. git checkout -b feature/功能描述 (feature/user_apis) *如果分支在本地存在,请选使用git branch -d 删除该分支
  2. 编代码 测试
  3. 提交代码
    1. git commit 修改的文件
    2. 确认是否开发完成, 还没完成 跳转到 2  编代码 测试
    3. git fetch origin develop 获取最新的develop代码
    4. git rebase origin/develop 同步开发期间的develop改动
  4. 合并到develop分支
    1. git push origin feature/功能描述
    2. 去服务端创建Merge Request,并指定给对应的人做Code Review
    3. 通过Merge的Request进行沟通, 如需要调整代码,在服务端对应的代码上进行标注,并通知开发人员确认需要修改 跳转到 2  编代码 测试
    4. 在服务端上完成代码的合并, 必须勾选删除源分支的选项 通知对应开发人员,功能已经合并
    5. 开发人员收到通知进行提测,并删除本地对应的feature分支

发布上线流程

  1. 新建release分支
    1. git checkout develop
    2. git pull origin develop提交代码
    3. git checkout -b release/将要上线的版本号 v+大版本号.小版本号.修订版本号 (v1.0.1)
  2. 合并代码到仿真环境 
    1. git checkout simulation
    2. git pull origin simulation
    3. git merge release/将要上线的版本号
  3. 提交上线单
  4. 通知op上线仿真环境代码
  5. 仿真测试 & BUG修复
  6. 确认仿真测试通过
  7. 提交代码
    1. git checkout -b release/将要上线的版本号
    2. git fetch origin master
    3. git rebase origin/master
    4. git tag -a 将要上线的版本号
    5. git checkout master
    6. git pull origin master
    7. git merge release/将要上线的版本号
    8. git push origin master
    9. git push --tags
    10. git branch -d release/将要上线的版本号
    11. git push origin :release/将要上线的版本号 删除服务器相对应的分支
    12. git checkout develop
    13. git rebase master
    14. git push origin develop
  8. 上线代码
  9. 线上测试
  10. 反馈

BUG修复

  1. 更新代码
    1. 确认问题所在的分支 release 或 develop 并使用git checkout 到该分支
    2. git submodule foreach git pull origin develop
    3. git checkout -b bugfix/BUG描述 (bugfix/username_allow_empty) *如果分支在本地存在,请选使用git branch -d 删除该分支
  2. 编代码 & 测试
  3. 提交代码
    1. git commit 修改的文件
    2. 确认是否开发完成, 还没完成 跳转到 2  编代码 测试
    3. git fetch origin 问题所在的分支名称 release 或 develop  获取最新的代码
    4. git rebase origin/问题所在的分支名称 同步开发期间的问题所在的分支改动
  4. 合并到问题所在的分支 release 或 develop
    1. git push origin bugfix/BUG描述
    2. 服务端创建Merge Request,并指定给对应的人做Code Review, 确定要合进分支的名称 release 或 develop
    3. 通过Merge的Request进行沟通, 如需要调整代码,在服务端对应的代码上进行标注,并通知开发人员确认需要修改 跳转到 2  编代码 测试
    4. git.letv.cn上完成代码的合并, 必须勾选删除源分支的选项 通知对应开发人员,功能已经合并
    5. 开发人员收到通知后,立即删除本地对应的bugfix分支
    6. 如果问题出现在release分支,并准备上线,需要将release的代码同步到simulation
      1. git checkout simulation
      2. git merge release/v版本号
      3. git push simulation
      4. 继续发布上线流程

紧急上线

  1. 确认上线类型
    1. BUG类的上线先走测试流程,必须重现BUG
  2. 更新代码
    1. git checkout master
    2. git pull origin master
    3. git submodule foreach git pull origin develop
    4. git checkout -b hotfix/将要上线的版本号 (hotfix/v1.0.2) *如果分支在本地存在,请选使用git branch -d 删除该分支,必需是在要修订的版本号上修改修订版本比如 v1.0.1 -> v1.0.2 不能跳版本号
  3. 编写代码  & 测试
  4. 提交代码
    1. git commit 修改的文件
    2. git fetch origin master
    3. git rebase origin/master
    4. git push hotfix/将要上线的版本号
    5. 服务端创建Merge Request,并指定给对应的人做Code Review, 确定要合进分支的名称 master
    6. 通过Merge的Request进行沟通, 如需要调整代码,在服务端对应的代码上进行标注,并通知开发人员确认需要修改 跳转到 3  编代码 测试
    7. 服务端上完成代码的合并, 必须勾选删除源分支的选项 通知对应开发人员,功能已经合并
    8. 开发人员收到通知后,立即删除本地对应的hotfix分支
  5. 合并代码到仿真环境
    1. git checkout simulation
    2. git pull origin simulation
    3. git merge master
  6. 提交上线单
  7. 通知op上线仿真环境代码
  8. 仿真测试 & BUG修复
  9. 确认仿真测试通过
  10. 提交代码
    1. git checkout master
    1. git tag -a 将要上线的版本号
    2. git push origin master
    3. git push --tags
    4. git checkout develop
    5. git rebase master
    6. git push origin develop
  11. 上线代码
  12. 线上测试
  13. 反馈


测试流程

  1. 更新代码
    1. git checkout develop
    2. git pull origin develop
    3. git submodule foreach git pull origin develop # 更新所有子模块
  2. 跳转到 开发流程
  3. 反馈
三、常遇到问题

1、想回退到某个commit之前,git log查看commit_id

a、不保留commit_id之后的修改  git reset --hard commit_id

b、保留commit的修改,只是撤销本地cimmit状态  git rset --soft commit_id

2、commit提交有冲突,需要处理(使用rebase)

a、git fetch origin

b、git rebase origin

c、处理冲突

d、git add -u

e、git rebase --continue

在任何时候,你可以用git rebase --abort参数来终止rebase的行动,并且当前分支 分支会回到rebase开始前的状态

3、

本地有修改和提交,如何强制用远程的库更新更新。我尝试过用git pull -f,总是提示 You have not concluded your merge. (MERGE_HEAD exists)。

我需要放弃本地的修改,用远程的库的内容就可以,应该如何做?傻傻地办法就是用心的目录重新clone一个,正确的做法是什么?

正确的做法应该是:

git fetch --all
git reset --hard origin/master

git fetch 只是下载远程的库的内容,不做任何的合并git reset 把HEAD指向刚刚下载的最新的版本

版权声明:本文为博主原创文章,未经博主允许不得转载。

Git使用及命令详解

  • 2017年12月04日 14:04
  • 68KB
  • 下载

Git使用规范

  • 2017年11月28日 16:03
  • 1.64MB
  • 下载

【工具使用】----版本控制系统Git

最近小编加入了公司的一个新的项目组,在此项目组中管理项目代码用到了git管理,原来小编也用过svn,那么这个时候问题就来了,既然这两个工具都是版本控制系统,那么到底什么是GIt呢,以及Git和svn两...
  • zmh458
  • zmh458
  • 2017年12月08日 18:15
  • 27

git github github入门使用教程.doc

  • 2017年12月08日 17:00
  • 448KB
  • 下载

Git使用详细教程 .docx

  • 2017年11月23日 16:46
  • 1.74MB
  • 下载

使用git将本地项目上传到github

git的安装省略,安装完之后,右键打开Git bash命令行窗口通过命令来创建 1、在本地创建一个版本库(即文件夹),通过git init把它变成Git仓库,此时会生成一个隐藏的.git文件夹;...

windows环境使用git

  • 2017年11月08日 20:10
  • 415KB
  • 下载

Git工具使用指令

  • 2017年11月06日 14:34
  • 14KB
  • 下载

手把手教你使用git GitHub创建管理仓库

一:Git是什么?        Git是目前世界上最先进的分布式版本控制系统。 二:SVN与Git的最主要的区别?       SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活...

git 使用指南

  • 2017年11月16日 16:06
  • 5KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:git 使用
举报原因:
原因补充:

(最多只允许输入30个字)