欢迎光临
我一直在奋斗

Git学习总结

一.什么是版本控制

什么是版本控制?我为什么要关心它呢?版本控制是一种记录一个或若干

文件内容变化,以便将来查阅特定版本修订情况的系统。在本书所展示的例子中,

我们仅对保存着软件源代码的文本文件作版本控制管理,但实际上,你可以对任

何类型的文件进行版本控制。

对于我来说,个人感觉git有点类似于百度网盘上面的时光回收机,能够查看任意时间段的文件,这样对于我们程序员来说就太方便了,如果代码写的有问题,能够及时回滚到任意一个版本.提升了工作的效率.让我们能够轻松的进行多人开发.

首先这里再明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。

不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,前面我们举的例子只是为了演示,如果要真正使用版本控制系统,就要以纯文本方式编写文件。

因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。

使用Windows的童鞋要特别注意:

千万不要使用Windows自带的记事本编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载Notepad++代替记事本,不但功能强大,而且免费!记得把Notepad++的默认编码设置为UTF-8 without BOM即可:

二.gitlab的简介

这里着重使用gitlab而不是使用github.该服务与github相似,但gitlab有一下的优势:

代码开源,能够让公司搭建自己的服务器.相对于github的免费版必须开源来说简直是不要不要的.

操作也github相似,也集成了权限管理,代码统计图表等实用工作.

三.安装git控制工具

Linux安装:如果要在 Linux 上安装预编译好的 Git 二进制安装包,可以直接用系统提
供的包管理工具。

在 Fedora 上用 yum 安装:
$ yum install git-core
在 Ubuntu 这类 Debian 体系的系统上,可以用 apt-get 安装:
$ apt-get install git

在Centos 7下安装:yum install git                                                                                                                                   在 Windows 上安装(推荐sourcetree或者其他类似工具):在 Windows 上安装 Git 同样轻松,有个叫做 msysGit 的项目提供了安装包,可以到 GitHub 的页面上下载 exe 安装文件并运行:http://msysgit.github.com/完成安装之后,就可以使用命令行的 git 工具(已经自带了 ssh 客户端)了,另外还有一个图形界面的 Git 项目管理工具

四.运行Git前的配置

用户信息:第一个要配置的是你个人的用户名称和电子邮件地址。这两条配置很重要,
每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,所以会随更新内
容一起被永久纳入历史记录:

$ git config –global user.name “John Doe”
$ git config –global user.email johndoe@example.com
如果用了 –global 选项, 那么更改的配置文件就是位于你用户主目录下的那
个,以后你所有的项目都会默认使用这里配置的用户信息。如果要在某个特定的
项目中使用其他名字或者电邮,只要去掉 –global 选项重新配置即可,新的设
定保存在当前项目的 .git/config 文件里。

查看配置信息:要检查已有的配置信息,可以使用 git config –list 命令

获取帮助:

想了解 Git 的各式工具该怎么用,可以阅读它们的使用帮助,方法有三:
$ git help <verb>
$ git <verb> –help
$ man git-<verb>
比如,要学习 config 命令可以怎么用,运行 :
$ git help config

五.gitlab的使用

不同与 github 自已申请账户,gitlab 只能由系统管理员为你创建账户,需
要使用 gitlab 服务,请及时与公司的 gitlab 系统管理员联系,由他为你创建账
户.

初探 gitlab 功能
登录进 gitlab(公司使用 7.0 版本)后,其主要界面如下:

剩下的就留给大家自己去查看吧.

六.Git 开发分支模型

  1. 分支介绍
    Git 提供了强大的分支功能,利用分支我们可以快速的在各个分支之间切换
    开发,为了规范开发,公司采用了业界备受推崇的 git flow 分支模型,该分支模
    型如下:
    主要分支:
    a) Production 分支
    也就是我们经常使用的 Master 分支, 这个分支最近发布到生产环境的代码,
    最近发布的 Release, 这个分支只能从其他分支合并,不能在这个分支直接修

    b) Develop 分支
    四川思安特科技 第 23 页
    这个分支是我们是我们的主开发分支, 包含所有要发布到下一个 Release 的
    代码,这个主要合并与其他分支,比如 Feature 分支
    c) Feature 分支
    这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回
    Develop 分支进入下一个 Release
    d) Release分支
    当你需要一个发布一个新 Release 的时候,我们基于 Develop 分支创建一
    个 Release 分支,完成 Release 后,我们合并到 Master 和 Develop 分支
    e) Hotfix分支
    当我们在 Production 发现新的 Bug 时候,我们需要创建一个 Hotfix, 完成
    Hotfix 后,我们合并回 Master 和 Develop 分支,所以 Hotfix 的改动会进入下
    一个 Release

7.Forking流

Forking
工作流不是使用单个服务端仓库作为『中央』代码基线,而让各个
开发者都有一个服务端仓库。这意味着各个代码贡献者有2个Git仓库而不是1个:一个本地私有的,另一个服务端公开的。

Forking工作流的一个主要优势是,贡献的代码可以被集成,而不需要所有人都能push代码到仅有的中央仓库中。开发者push到自己的服务端仓库,而只有项目维护者才能push到正式仓库。这样项目维护者可以接受任何开发者的提交,但无需给他正式代码库的写权限。效果就是一个分布式的工作流,能为大型、自发性的团队(包括了不受信的第三方)提供灵活的方式来安全的协作。也让这个工作流成为开源项目的理想工作流。

工作方式:

和其它的Git工作流一样,Forking工作流要先有一个公开的正式仓库存储在服务器上。但一个新的开发者想要在项目上工作时,不是直接从正式仓库克隆,而是fork正式项目在服务器上创建一个拷贝。
   这个仓库拷贝作为他个人公开仓库 —— 其它开发者不允许push到这个仓库,但可以pull到修改(后面我们很快就会看这点很重要)。在创建了自己服务端拷贝之后,和之前的工作流一样,开发者执行git clone命令克隆仓库到本地机器上,作为私有的开发环境。
  要提交本地修改时,push提交到自己公开仓库中 —— 而不是正式仓库中。然后,给正式仓库发起一个pull request,让项目维护者知道有更新已经准备好可以集成了。对于贡献的代码,pull request也可以很方便地作为一个讨论的地方。
  为了集成功能到正式代码库,维护者pull贡献者的变更到自己的本地仓库中,检查变更以确保不会让项目出错,合并变更到自己本地的master分支,然后pushmaster分支到服务器的正式仓库中。到此,贡献的提交成为了项目的一部分,其它的开发者应该执行pull操作与正式仓库同步自己本地仓库。
未经允许不得转载:奋斗者的足迹 » Git学习总结
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

奋斗者的足迹

联系我们加入我们