阅读更多

0顶
0踩

开源软件

转载新闻 关于 Git 你需要知道的一些事情

2017-02-08 14:53 by 副主编 jihong10102006 评论(1) 有4801人浏览
git
分支和合并
Git 跟其他版本控制系统最大的优势就在于其高级的分支模型。

Git 允许而且 鼓励 你在本地使用多个完全独立的分支。这些分支的创建,合并和删除几乎都可以在几秒内完成。

这意味着你可以轻松的做如下操作:
  • 无痛的上下文切换 创建分支试验一个想法,提交几次,切回你原来分支的状态,应用一个改动 patch,切回你原来正在试验的状态,将刚才应用的 patch 合并过来。
  • 基于角色的代码支线 你可能会有一个分支仅仅包含那些只存在于生产环境上的代码,另外有一个独立的分支用以合并测试环境代码,还有若干个更小一些的分支用于日常开发工作
  • 基于特性的工作流 为每一个新的特性创建新的分支,你可以方便平滑的在这些分支之间无缝切换,当这些特性的改动完成的时候,你可以将其合并入主分支,并把特性分支删掉。
  • 任意试验 创建一个分支专门用来试验,当觉得试验不理想的时候,直接删除掉即可,放弃掉之前的试验内容。这时候不会有任何其他人察觉到这个试验(甚至在这期间你还可以推送其他不相关的分支)

尤其是当你推送至远程仓库的时候,你不必推送所有分支,你可以选择只推送少数你愿意分享的分支,当然如果你愿意,也可以推送所有分支。这一点倾向于让开发者在试验很多新的想法的时候免除发布自己的未成熟的试验计划的顾虑。

当然,也有一些其他的系统可以部分实现上述的功能和优势,只是具体的执行会变的困难和容易出错。Git 让这些工作变得难以置信的简单,它在开发者学习其使用的同时就改变了开发者的工作模式。

轻量和快速
Git 很快。Git 基本上所有的操作都在本地执行,这对于那些必须跟服务器通信的集中式系统是一个巨大的速度优势。

Git 一开始是为了管理 Linux Kernel 的源代码设计的,这意味着他从第一天诞生就拥有了处理大型仓库的高效优势。Git 使用 C 语言编写,减轻了使用更高级别编程语言的 Runtime 带来的性能损耗。Git 最开始的两个重要的设计目标就是性能和速度。

压力测试
让我们看一下与 SVN (一个通用的集中式存储版本控制系统,跟 CVS 和 Perforce 很像)相比下的常规操作的性能测试指标。这里指标是值越小,速度越快。

为了测试,我们在亚马逊的 AWS 的同样的可用区上新建了两个 Large 类型的计算服务器实例。每一个计算实例上都安装 Git 和 SVN。 我们把 Ruby 的源代码仓库拷贝到了 Git 和 SVN 的计算服务器示例上,两者都执行通用的操作。

在有些情况下,两者的命令和实际效果并不能完全对应起来。在这里,我们在常用的操作中选择相似效果的匹配情况。例如,对于“提交”的测试,在 Git 中我们也是计算 Push 的时间的。然而在大多数情况下,你可能实际上并不会在提交后马上就推送到服务器上,这在 SVN 上是不可分割的操作。

下面表格中所有的时间单位都是秒。

你需要注意的是,这已经是 SVN 最好的运行场景了 -- 一个没有任何负载的服务器,客户端和服务器之间的网络带宽达到 80MB/s。上文中的所有指标在受网络波动,或者在一个更差的网络环境下 SVN 的表现都更差,然而 Git 这边几乎所有的指标都不受影响。

很明显,在这些最常用的版本控制工具的操作中,甚至是在SVN 的理想使用环境下,**Git 在很多方面都大幅领先**。

一个 Git 比 SVN 慢的地方是初始化 clone 仓库。在这种情况下,Git 是在下载整个仓库历史而不是仅仅是最新版本的代码。上文中的表格所示,仅仅执行一次的操作影响并不是很大。

另外一个有趣的点是,Git 和 SVN 在 Clone 或者 Checkout 到本地后的文件大小几乎差别不大,要知道对于 Git 来说,本地可是包含了整个项目历史。这也展示了 Git 在文件压缩和存储上的超高效率。

分布式
Git 最棒的特性之一就是分布式。这意味着,你要 clone 整个仓库而不是仅仅 checkout 分支的最新头部版本。

多个备份
在日常的使用场景中 Git 往往有多个备份。这意味着就算在使用一个中央存储式的工作流,每一个用户都在本地有一个服务器上的完整备份。这里的任意一个版本都可以在服务器端数据损坏或者丢失的时候推送回服务器以挽救损失。事实上,只要你的仓库不是只有一个 copy,Git 就不会存在单点问题。

任意工作流
因为 Git 拥有分布式特性和极好的分支系统,你可以在此基础上轻松实现大量的工作流模型。

Subversion(SVN) 风格工作流
集中式存储的工作流非常常见,特别是对于那些从传统的集中式代码版本管理系统转过来使用 Git 的人。Git 一样可以提供这种工作形式:每次 Push 必须要更新到远程仓库的最新版本。所以说大家还是像以前一样使用集中式存储的工作流往同一个服务器上 Push 代码依然没问题。


整合管理者工作流
另外一个常见的 Git 工作流是整合工作流。主要的仓库有一个单一的开发者维护(维护者)。其他若干开发者从这个仓库 clone,然后推送到他们自己的完全独立的仓库里面,最后请求维护者从主要仓库 Pull 那些他们在各自的仓库里面的改动。这种形式往往在 GitHub 上以开源的形式进行协作。

维护者和负责人工作流
对于一些更为复杂的项目来讲,像 Linux 内核这样的开发工作流也是很有效的。在这个模型中,负责人(lieutenants)负责整个项目的一些特定的子系统,他们合并所有跟那个子系统关联的变动。另外一个维护者(dictator,字面理解:独裁者)只能从他管辖的负责人这里获取变更,并将这些变更推送到主要仓库。然后所有人都从这个仓库获取更新。


数据校验
Git 的数据模型确保了项目内的每一个字节,每一个 bit 的一致性。提交的每一个文件都会使用校验和计算摘要,检出的时候也使用这个摘要值。没有任何可能会出现从仓库中获取的内容跟你存储的内容有任何差异。

在不改变 ID(校验和)的情况下也不可能出现改变任何文件,日期,提交说明或者任何其他在 Git 仓库中的数据。这就意味着,如果你有一个 commit ID,你不但可以确定这个版本的代码跟他提交的时候是一模一样的,而且这个版本之前的历史也没有发生任何改变。

大多数中央存储的版本控制系统默认不提供这样的校验整合。

暂存区域
不像其他系统, Git 有一个概念叫做“暂存区域”或者“index”。这是一个在提交执行之前的临时的区域可以用来格式化和审阅改动内容的。

一个 Git 优于其他系统的功能是我们可以快速的暂存一些改动的文件,在工作目录中只提交部分改动的文件,或者文件改动的部分内容,以及在提交的时候在命令行里列出改动的文件列表。

暂存区域允许你仅仅暂存部分的文件改动,在你意识到你忘了提交其中一个文件之前,对文件进行两个逻辑上不相关的修改的日子已经一去不复返了。现在你可以仅仅暂存你当前提交需要改动的文件,其他的改动在下次提交再暂存。这个特性可以扩展到对文件进行的任何更改。

当然,Git 也允许你忽略掉暂存区域这个过程,你可以轻松的在 commit 命令后面添加 '-a' 选项来直接将所有改动提交。Git 会自动帮你先暂存到暂存区域,再执行提交。


免费和开源
Git 是一个使用 GNU GPL2.0 协议的开源软件。Git 选择 GPLv2 来确保你可以自由的分享和改造自由软件,而且能确保使用它的任何用户都是自由免费的。

然而,我们确实也保留了 “Git” 和 logos 避免争议。欲知详情请看我们的商标政策。

译者注本文译自 Git 官方网站的关于说明
  • 大小: 40.5 KB
  • 大小: 20 KB
  • 大小: 31.7 KB
  • 大小: 8.4 KB
  • 大小: 34.8 KB
  • 大小: 61.2 KB
  • 大小: 63.2 KB
  • 大小: 283.9 KB
  • 大小: 19.3 KB
  • 大小: 15.1 KB
来自: coding
0
0
评论 共 1 条 请登录后发表评论
1 楼 李夫钧 2017-02-09 09:00
[/img]

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • windows xp下重装ie浏览器的方法

          假如您的ie浏览器出问题了,想重新装一下和原来版本一样的ie,如果您直接装是无法安装的,系统会提示您您已经安装了该浏览器,那这时该怎么办呢?别着急,原来以前在安装ie浏览器的时候安装程序自动的在系统注册表中留下了ie浏览器已经安装的信息,所以您再一次重新安装时,系统就会出现以上的错误。好了,看解决办法吧! 进入注册表!(运行-〉regedit 就不用我说了吧?) 找到“HKEY_LOC

  • 如何在XP下装IE

     一、在windows XP中,默认状态是无法重装IE的,如果因为文件出错故障等原因必须重装,可以使用如下方法。插入windows XP安装光盘,在“开始-运行”窗口输入“rundll32.exe setupapi,lnstallHinfSection Defaultlnstall 132 c:/windows/inf/ie.inf"回车后即可重装IE(假设windows安装在c:/windows

  • 在旧的Windows XP系统上,哪些浏览器使用最安全?

    不幸的是,Windows XP 的浏览器领域基本上是死的。你没有真正的选择。Internet Explorer 已经完全死亡,你应该不惜一切代价避免使用它。Chrome 浏览器对 Windows XP 的最新浏览器是 2016 年 4 月的,所以你也不应该使用它。火狐在 2018 年 6 月放弃了对 Windows XP 的支持。Opera 对所谓的 XP 安全补丁支持一直保持沉默,而且多年来也没有更新其 XP 浏览器。傲游自 2017 年 9 月以来没有收到针对 Windows XP 的更新。

  • XP下自己动手重装IE6.0的3种方法(建议第三种,原创)

    重装IE6.0                           需要的文件的下载地址在最后↓↓↓↓↓↓↓↓↓   百度一下,答案基本一致:(我的方法在后面) 方法1: 打开“注册表编辑器”(开始——运行——regedit——确定), 依次展开[HKEY_LOCAL_ MACHINE\SOFTWARE\Microsoft\Active Setup\Installed Component

  • windowsXP重装IE的方法

    在windows XP中,默认状态是无法重装IE的,如果因为文件出错故障等原因必须重装,可以使用如下方法。插入windows XP安装光盘,在“开始-运行”窗口输入“rundll32.exe setupapi,lnstallHinfSection Defaultlnstall 132 c:/windows/inf/ie.inf"回车后即可重装IE(假设windows安装在c:/windows中) 

  • 重装Windows XP的IE浏览器

          在Windows XP中,默认状态是无法重新安装IE的,如果因为文件出现故障等原因必须重装,可以使用如下方法。      插入Windows XP安装盘,在“运行”对话框中输入“rundll32.exe setupapi,InstallHinfSection DefaultInstall 132 C:/Windows/inf/ie.inf”,回车后即可重装IE了(这里,我们假设Wi

  • WinXP下IE重装技巧

        最近整了个WindowsXP的Vista美化版光盘,咱也美化下系统,装完了发现IE不能正常使用,那个郁闷艾,在“添加/删除Windows组件”里面操作了很多次不管用,又下载“IE卸载工具”结果反倒注册表改的一塌糊涂,呵呵,经过 多方磨难,终于搞定,记下这份辛酸,与大家分享技巧,以后就不必再走弯路了(其实主要是注册表太麻烦~)       步骤1:打开"注册表编辑器",找到[HKEY_L

  • 在xp下重装ie

    在xp下重装ie: 运行注册表编辑器,找到[HKEY_LOCAL_MACHINESOFTWAREMicrosoftActive SetupInstalled Components{89820200-ECBD-11cf-8B85-00AA005B4383}],把键值从1改成0,重启后xp将自动开始安装ie6

  • 计算机找不到ie浏览器,WinXP系统IE浏览器不见了怎么办?

    Windows系统都会有自带的IE浏览器,我们可以通过IE浏览器查看内容,找自己需要的软件等等。就最近,有使用WinXP系统的用户,在打开电脑的时候,发现电脑桌面上的IE浏览器突然不见了。怎么办?如何找回桌面上的IE浏览器呢?现在就和小编一起去看看WinXP系统找回IE浏览器的方法。方法/步骤如下:1、如果你的IE浏览器是桌面图标消失的话,就点击开始,上边的IE浏览器按住拖到桌面。2、也可以点击所...

  • 挂载WINDOWS虚机镜像

    1 rhel7 挂载windows虚机镜像在rhel 7.0 内挂载windows虚拟镜像,需要ntfs-3g的软件包。当你安装该软件包后,挂载windows虚拟机镜像时,仍然出现下面问题:[root@selinuxplus.com]# mount /opt/windowsxp_32.img/mntmount: /dev/loop0 is write-protected,...

  • 如何重置IE浏览器?重置IE浏览器的方法

    ie浏览器是一款自带的浏览器服务软件,这款软件使用非常的方便,界面使用非常的简洁,浏览器的功能更加的全面,用户可以使用手机快速搜索,那么如何进行IE浏览器的重置呢?如果用户需要使用IE浏览器,想对IE浏览器进行设置,详细的步骤就在下面,操作方法非常的简单,需要的用户可以在这里学习一下,那么怎么使用手机设置操作呢,这个方法非常适合大众用户,可以在短时间里帮助用户解决这个难题,一起来看看如何操作吧! 重置IE浏览器的方法 1、首先打开电脑中的ie浏览器,双击进行操作; 2、点击右上角的设置图标,打开新的操作界面

  • 如何卸载和重装IE

    现在有很多恶心的网站会乱修改我们的IE,IE变得千疮百孔的,通过重新安装IE可以修复这些问题,但是同时问题也来了,系统老是报告IE已经安装了,怎么解决这个问题呢,找了一下资料,发现重装IE也是这么容易的。1,修改注册表[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Active Setup/Installed Components/{89820200-ECBD

  • windows xp 下载老版本的chrome浏览器

    下载地址收藏一下: http://www.portablesoft.org/google-chrome-legacy-versions/

  • XP系统最高支持IE几?

    总算是见识了,现在工作的地方竟然还是xp系统为主,电脑都是2010年左右的,配置低的令人发指。 大部分是用的局域网系统,所以还可以忍受。 前两天财务在我为她重装xp系统之后给他装个IE9,说是IE对报税系统支持性好。然后我下载了IE9和10,发现都安装不了。(实在是这么多年没有用过xp系统了,对这个不清楚) 那么问题来了,XP系统最高支持IE几? 答曰:最高支持IE8.0...

  • 正确的IE卸载与重装方法

     很多人IE出问题后都无法重新安装,特别是6.0的更难,今天笔者也遇见了同样的问题,在尝试了多种方法以后,最终得到了以下可行办法: IE 5.0:进入注册表,找到HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/INTERNET TXPLORER ,单击version vector主键,双击ie子键,将5.0002改为4.0后重启,安装即可。IE 6.0:

  • 解决IE浏览器无法重装的问题

    有时IE出了毛病,想重装,却老提示已经安装了IE,而无法重装,一般的方法是修改注册表中IE的版本号,这种方法一般会奏效,但有时改了版本号亦无法安装,这时可以试一下以下这个小技巧,看看是否可行:   方法一:打开注册表编辑器,找到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Active Setup/Installed Components/{89820200-ECBD

  • 重新安装IE浏览器

    打开注册表编辑器,找到HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Active Setup/Installed Components/{89820200-ECBD-11cf-8B85-00AA005B4383},把右边的DWOD值IsInstalled从1改成0即可。如果需要重新安装OE,修改HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft

Global site tag (gtag.js) - Google Analytics