`

git简单操作

    博客分类:
  • git
 
阅读更多
张三、李四、王五分别基于当前master分支创建dev-1001、dev-1002、dev-1003分支,以张三的1001为例,演示如下:
# 获取远程分支信息及其对象,确保origin/master是远程库最新的master
$ git fetch
# 从origin/master’s HEAD分出本地dev-1001分支,并进入
$ git checkout -b dev-1001 origin/master
# 将当前分支(dev-1001)推送到远程库
$ git push origin HEAD  
如果“宝力道活动”由张三以及另外多位工程师协同开发,假如你就是其中的工程师之一,你可以通过以下命令获取并进入到该分支:
# 
$ git fetch 
# 在origin/dev-1001的最顶端上创建本地dev-1001分支,并进入
$ git checkout -b dev-1001 origin/dev-1001
在本规范中,默认本地的dev-1001和远程dev-1001是一一对应的,此时打开.git/config文件,看是不是有类似如下的配置:
[branch "dev-1001"]
      remote = origin
      merge = refs/heads/dev-1001
如果没有如上的配置,此时git pull --rebase会被拒绝,因此建议你执行以下两个config配置,以支持简便的git pull/fetch:
# 配置本地dev-1001对应的远程库总是origin
$ git config branch.dev-1001.remote origin 
# 配置远程dev-1001分支对应的本地分支(refs/heads/dev-1001)
$ git config branch.dev-1001.merge refs/heads/dev-1001
# 此时在dev-1001分支下的git pull将变得简单
$ git pull --rebase
现在你可以在dev-1001下编写代码,进行git add/commit,时不时pull或push分支:
# 对本地代码进行编写并commit到本地dev-1001分支
$ git add/commit
# 获取远程分支,并将当前分支重新基于对应的远程分支(dev-1001)
$ git pull --rebase
# 将本地当前分支(dev-1001)推送给远程库dev-1001
$ git push origin HEAD
一般情况下,持续一段时间,代码总是会开发完成的,并且认为应该提交进入测试阶段。此时你们应该商定一个人----比如技术负责人、最后的提交者等等,假设这个人就是张三,对dev-1001做提交测试前的最后一些工作,即rebase 最新的 master:
# 自动fetch远程库分支信息及其对象(origin/master、origin/dev-1001等)
# 将dev-1001分支基于最新的origin/dev-1001分支
$ git pull --rebase
# 让当前分支基于最新的master
$ git rebase origin/master
# push当前分支到同名的远程分支
$ git push origin HEAD
完成之后,告知一下测试人员1001任务已提交,可以进行测试了。
其他同学如果想获取最新的、集成所有人工作的dev-1001代码,在张三同学push完后在本地dev-1001分支下执行以下命令
$ git pull --rebase
小贴士:
  这本规范中,在dev-xxxx分支下,我们一直强调使用git pull --rebase,而非git pull,这之间从语义上和效果上是不一样,甚至在他人rebase origin/master后只执行git pull还会导致代码协作失败,“丢失”代码。 
  
# git commit,尽量保证每次提交都有意义

当你不小心,写错了提交的注视/信息,该如何处理呢。 在git中,其commit提供了一个--amend参数,可以修改最后一次提交的信息。具体操作如下:

$ git add -u

$ git commit -m "add"

$ git add -u

$ git commit --amend -m "完整的提交信息"

1。3。2 启动测试

这个过程由测试人员操作,执行的脚本是test_init.sh,以下是测试人员test_init.sh脚本有关git部分的功能概括:
# 确保没有版本库之外的文件存在 
$ git clean -fdx
# 获取远程分支信息及其对象,确保origin/master是远程库最新的master
$ git fetch
# 创建即将被测试的testing分支,基于最新master
$ git checkout -b testing origin/master
# 如果当前testing分支存在,则强制重置
$ git checkout testing && git reset --hard origin/master
# 将dev-1001合并到当前testing分支下
$ git merge origin/dev-1001 
如果merge origin/dev-1001失败,则应该清空测试分支:
# 将当前testing分支以及当前工作区恢复origin/master
$ git reset --hard origin/master
然后告知1001工程师说明其合并失败无法测试,重新提交dev-1001。如果合并成功,则通过脚本部署到测试服务器上,即可进行测试。 

1。3。3 缺陷修复

在测试阶段也是bug不断涌现的时期,一旦测试人员发现了bug,则需要开发人员进行修复。
开发人员在dev-1001上对相关bug进行修复。在修复之前,建议rebase一下最新的origin/master。然后再在最新的dev-1001上进行修复。过程之中,多人协同修复多个bug时,需要通过git pull --rebase来获取其他人的最新代码:
# 进入并更新dev-1001环境
$ git checkout dev-1001
$ git pull --rebase
$ git rebase origin/master
# 修复缺陷,add/commit之后推送远程dev-1001分支
$ git push origin HEAD
如测试需要验证这些修复,则可以从新执行“启动测试”程序。 

1。3。4 测试通过

经过一系列测试,如认定达到一定的标准,则应该push到master:
# 写入当前的.tag_base文件
$ git checkout testing
$ echo "1001" > .tag_base
$ git add .tag_base
$ git commit -m "1001"
# push到远程master
$ git push origin testing:master
如果push失败,则需要重新执行“启动测试工作”,重新测试。

1。3。5 预发布

预发布版本是master版本。
如果确认该预发布版本可以更新到线上,则需要对该预发布版本做tag
# 对当前的 master分支打tag,“1001”串从.tag_base获取
$ git tag 20121114.1001 master 
# 将20121114.1001 推送到远程
$ git push origin 20121114.1001

1。4。1 编码

根据线上版本创建dev-1001.1分支:
# 确保获取到20121114.1001的信息及其对象
$ git fetch
# 基于20121114.1001创建dev-1001.1,并进入
$ git checkout -b dev-1001.1 20121114.1001
# 将当前分支(dev-1001.1)推送到远程库
$ git push origin HEAD
其他的工作和“常规开发流动”的“开发环节”一致,但不执行常规开发环节中最后一步的“rebase master”。 

1。4。2 启动测试

如果需要测试人员测试,则需要让测试暂停当前的测试,将testing转为dev-1001.1:
# 确保没有版本库之外的文件存在 
$ git clean -fdx
# 确保获取到 dev-1001.1的信息及其对象
$ git fetch
# 创建即将被测试的testing分支,基于最新dev-1001.1
$ git checkout -b testing origin/dev-1001.1
# 如果当前testing分支存在,则强制重置
$ git checkout testing && git reset --hard origin/dev-1001.1
和常规流程不一致的地方是,testing不需要基于master或相关tag任何点,合并当前要测试的dev-1001.1,而是直接指向dev-1001.1。

1。4。3 缺陷修复

如果测试有缺陷应该立即告知开发人员解决,开发人员继续在dev-1001.1分支上工作,除了分支号不一样,以及不能rebase master,其他基本操作规范和“常规开发”是一致的,最终push到远程dev-1001.1分支上。都修复完毕后告知测试人员。测试人员重新执行本章的“启动测试”重新测试。 

1。4。4 测试通过

测试通过后,需要将master分支指向即将上线的版本:
# 写入当前的.tag_base文件
$ echo “1001.1” > .tag_base
$ git add .tag_base
$ git commit -m “1001.1”
# 强制将远程master分支指向testing
$ git push origin +testing:master
此操作和“常规开发流动”的“测试通过”不同的地方是这里使用了“强制”push,即testing有”+”。 

1。4。5 预发布

预发布版本是origin/master版本。
如果确认该预发布版本可以更新到线上,则需要对该预发布版本做tag。同时要将本tag名称要体现到/version地址中,使能够通过浏览器了解到
# 对当前master打tag,“1001.1”串从.tag_base获取
$ git tag 20121115.1001.1
$ git push origin 20121115.1001.1  
分享到:
评论

相关推荐

    git简单基本操作文档.docx

    git简单基本操作文档.docx

    git命令行操作.docx

    写给新人的一个git命令行操作文档,简单易懂,图文并茂,包教包会,自己写给新人看的,照着步骤弄全成功了

    git 入门级别操作

    git简易操作 让你轻松过关 git的基本操作 让你轻松发布到远程

    git操作(完整).md

    1. 最简单的原因就是代码备份。GitHub 就相当于云盘,如果使用 git 就可以很方便的将你的代码保存到 GitHub 中,防止代码丢失或者说方便查看代码 2. 更重要的原因是我们可以通过 git 来管理我们的代码: - 公司...

    git分支操作可视化展示explain-git-with-d3.zip

    explain-git-with-d3 使用 D3 对 git 的分支操作进行简单的可视化展示。 标签:explain

    Git介绍与使用-培训专用课程PPT

    主要针对新手入职快速自学git的使用,也可供大佬面向学校或者公司培训使用,根据多年经验总结和整理出来的课程,上手工作使用的git知识这里全都有,如果是想用来制作自己的培训课程的话,简单修改单位名称即可;...

    Git-2.12.2.2-32-bit Git for Windows 2017 32位

    首先,这个是32位的。 然后呢,Git for Windows 主要提供了一个轻量的、本地化的git 命令工具,提供了命令行下的全功能界面操作。...超简单的,在任何一个文件夹下,鼠标右键,在弹出菜单中选择git bash

    git操作说明.xmind

    git操作脑图,基本操作都有!!思维导图又叫心智导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效,是一种实用性的思维工具。思维导图运用图文并重的技巧,把各级主题的关系用相互隶属与相关的层级图...

    简单git安装步骤

    git安装的基本操作教程

    GIT使用简单说明

    概述了GIT的简单使用,方便新手操作;重点描述了TortoiseGit插件的配合使用!

    git和svn学习入门教程

    现在使用git的比svn多了,但是git操作比svn复杂,上传git和svn的简单教程

    git实现原理及使用手册培训教程

    Git 快速入门,git简单教程,操作手册。方便初学者。简单操作。

    Git-2.20.1-64-bit.exe,zip

    3、Git离线操作性:Git可以离线进行代码提交,因此它称得上是完全的分布式处理,Git所有的操作不需要在线进行;这意味着Git的速度要比SVN等工具快得多,因为SVN等工具需要在线时才能操作,如果网络环境不好, 提交...

    Git实战操作(Idea)

    用于Git实战操作,一些简单的命令和Idea中的分支操作等

    git命令整理的简单使用

    初始化: git init 连接远程仓库:git remote add origin git@github.com:yourName/repositoryname.git...提交代码: git commit -m (注释什么操作) 推送到远程仓库:git push -u origin master (master 默认分支)

    git快速简单案例教程

    对于没有操作过git的朋友,又想快速的使用git,这是一份不错的教程。

    git小白入门操作超级简单

    git小白入门操作超级简单

    git使用手册.docx

    git 简单操作手册

    Git的一些简单使用操作

    了解Git的一些简单使用操作

    GIT版本控制管理工具操作手册

    GIT版本控制管理工具操作手册,内容详细,实例简易。重要看分支操作。

Global site tag (gtag.js) - Google Analytics