`

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 简易指南.pdf

    《Git简易指南》是一份简明扼要的文档,旨在帮助初学者快速入门Git的基本操作。 #### 二、安装Git - **OSX版**: 可以通过Homebrew等包管理器或者官方网站下载安装包进行安装。 - **Windows版**: 官方网站提供.msi...

    GIT简易使用手册

    ### Git简易使用手册知识点解析 #### 一、Git简介与特点 **Git**是一种开源的分布式版本控制系统,专为高效地处理从小型到大型项目的版本管理而设计。其分布式特性意味着开发者可以在本地提交更改,无需每次都连接...

    git 使用简易指南

    Git是目前广泛使用的版本控制系统,为程序员提供了方便的代码版本管理功能。本指南将介绍Git的基本使用方法,帮助读者快速掌握Git的...以上便是git使用的简易指南,希望能帮助您快速上手Git,轻松进行代码版本的管理。

    Git GUI操作流程

    总的来说,Git GUI提供了一个友好的界面,使得Git的常用操作变得更加直观和简单,尤其适合不熟悉命令行或者希望提高效率的开发者。通过熟练掌握Git GUI,你可以更高效地管理和协作你的Git项目。

    git简单基本操作文档.docx

    Git 基本操作文档 Git 是一个开源的版本控制系统,广泛应用于软件开发、文档管理等领域。本文档将介绍 Git 的基本操作,帮助读者快速掌握 Git 的使用。 创建远端仓库并建立链接 创建远端仓库是使用 Git 的第一步...

    简易本地Git C++

    在这个简易的Git C++实现中,开发者可以创建新的log,这通常对应于Git中的"commit"操作。这个过程涉及到对当前代码状态的快照,并将快照信息存储到Git仓库中。通过查看log,开发者可以回顾代码的演变历程,这对于...

    Git简单使用.pdf

    Git的简单使用包括一系列基本命令,这些命令可以帮助用户初始化版本库、配置用户信息、添加和删除文件、提交更改、分支管理以及标签管理等。 初始化和配置: 1. 要在当前目录下创建一个新的Git代码库,可以使用命令...

    git简易教程

    Git 简易教程 Git 是一款强大的分布式版本控制系统,由 Linux 内核开发者 Linus Torvalds 创建,主要用于管理软件开发过程中的源代码。它的核心特性包括高速、分布式的特性,以及完整的版本历史记录。Git 不依赖...

    Git操作手册.pdf

    Git的安装配置简单便捷,它不仅提供了命令行工具,还配备了图形界面项目管理工具。 在Windows平台上安装Git,可以通过GitHub页面下载msysGit项目的exe安装文件。由于官网下载可能较慢,国内镜像如淘宝镜像提供了更...

    Git for Windows 2017 最新版,Git-2.15.0

    2. Git GUI:一个简单的图形界面,适合初学者和不熟悉命令行的用户。 3. Windows集成:与Windows Explorer集成,可以在文件资源管理器中右键执行Git操作。 4. SSH密钥管理:内置SSH密钥生成和管理工具,方便连接...

    Git使用手册.pdf

    首先,安装Git非常简单,可以从Git官方网站(https://git-scm.com/downloads)下载对应操作系统的版本,并按照默认设置进行安装。安装完成后,可以通过启动Git Bash来验证安装是否成功,这是一个类似于命令行的窗口...

    git 使用简易教程

    ### Git使用简易教程 #### 一、Git简介与版本控制系统的重要性 **Git**是一种开源的分布式版本控制系统,被广泛应用于软件开发中以追踪文件的变化历史并管理不同版本间的差异。Git的强大之处在于其高效性、灵活性...

    git-cheatsheet——Git常见操作可打印版

    Git是世界上最流行的分布式版本控制系统,它允许开发人员追踪和管理代码的更改,使得协作和代码回溯变得简单。本文将详细解析"git-cheatsheet"中的常见操作,以帮助你更高效地使用Git。 1. **初始化Git仓库** 在一...

    程序员git简单使用方法

    Git是分布式版本控制系统,是...以上是Git的基础使用方法,熟练掌握这些操作,能让你在开发过程中更加高效。随着经验的增长,你还会接触到更高级的Git功能,如rebasing、cherry-picking等,进一步提升你的开发效率。

    Git 和 GitDesktop For Windows

    2. 强大的分支和合并:Git非常擅长处理分支,使得并行开发变得简单。开发者可以轻松创建新分支进行实验性开发,然后将改动合并回主分支。 3. 高效:Git的设计使其在处理大量文件和大型项目时表现出色,它的性能在...

    git开发工具Git-2.24.0.2-64-bit

    4. 分支管理:Git的分支机制使得开发新功能或修复bug变得简单快捷,可以轻松合并分支。 5. 强大的历史记录:Git可以查看代码的每一次修改,通过`git blame`和`git log`等命令追溯变更来源。 6. 拉取请求(Pull ...

    git最新操作手册

    ### Git 最新操作手册知识点概览 #### 一、Git简介 **Git**是一种开源的分布式版本控制系统,设计用于高效地处理从小型到大型项目的版本管理。与传统的集中式版本控制系统(如SVN)不同,Git允许每个开发者的电脑上...

    git命令行使用教程-Git简易的命令行入门教程

    Git 命令行使用教程 - Git 简易的命令行入门教程 Git 是当今最流行的版本控制系统之一,它允许开发者对代码进行版本控制、协作和追踪修改记录。 Git 命令行使用教程旨在帮助初学者快速掌握 Git 的基本命令和使用...

    最新Git-2.29.1-64-bit git安装包windos64位官方下载

    Git的安装过程相对简单,用户只需运行提供的Git-2.29.1-64-bit.exe文件,按照安装向导的步骤操作即可。在安装过程中,用户可以选择自定义安装路径,配置终端模拟器(如Git Bash或PowerShell),以及设置是否全局配置...

    git客户端(Git+TortoiseGit)

    3. 分支管理:创建、切换和合并分支操作变得简单直观。 4. 解决冲突:TortoiseGit提供冲突解决工具,帮助用户处理合并时的冲突问题。 5. 其他实用功能:还包括重置、合并、标签管理等,使得Git的高级功能对新手更加...

Global site tag (gtag.js) - Google Analytics