一、Git简介

由于工作需要,代码版本控制工具由SVN换为了Git。Git对于我来说,很陌生,不清楚其工作原理,所以查询了一些资料,将自己所得知的内容来汇总一下,梳理一下这方面的知识,同时也给其他想了解Git的童鞋们,提供点参考资料!!

了解软件,我们一般都了解其来源、优缺点(或与其他系统的比较)、安装配置、软件的架构,工作原理和使用,对于Git来说也是一样,这里也就这几个方面来说!

版本控制工具简介



问题的发现与解决永远是我们软件行业前进的动力与根源!

说到版本控制工具,不得不说,我们为什么需要它,也就是我们遇到了什么问题,需要用它来解决。

在对文档进行管理的时候,我们通常会遇到2大问题:1.文档怎么回滚到编辑之前的状态;2.如果两个人同时编辑某个共享文件,先进行编辑的人所做的修改内容会被覆盖。

为了解决这2个问题,前辈们开发了一系列的版本控制系统,其中Git就是这些版本控制系统中十分出色的一个!

Git简介



Git是Linus Torvalds 为了帮助管理 Linux 内核开发,而用C语言开发的一个开源的分布式版本控制工具,注意这里对分布式的强调。不同于Git,像Perforce、SVN和CVS这类版本控制工具都是集中式的。

Git常用于敏捷高效地处理任何或小或大的项目。

下面大概介绍下集中式版本控制工具和分布式版本控制工具的区别。

集中式

所谓集中式的版本控制,就是在一个系统中只有一个机器是服务端,其他机器全是客户端。

以SVN版本控制为例,在一个系统中会有一个SVN服务器,所有的代码以及版本信息都保存在这个服务器上。每个客户端可以从服务器get下来一份代码,然后在本地修改,最后submit修改的代码。

可以看到集中式的版本控制还是有一些问题的:

  • 网络依赖性强,工作环境保持网络连接,如果网络断掉了,所有的客户端就无法工作了。
  • 安全性较弱,所有的代码以及版本信息保存在服务器中,一旦服务器挂掉了,代码和版本控制信息就丢失了。

分布式

而在分布式版本控制系统中,没有服务端/客户端的概念,每台机器都是一个服务器。也就是说,在分布式本版控制系统中,每台机器都有一份代码,并且有代码的版本信息。

所以可以看到Git的优势:

  • 每台机器都是一台服务器,无需依赖网络就可以帮自己的更新提交到本地服务器,支持离线工作。当有网络环境的时候,就可以把更新推送给其他服务器。
  • 安全性高,每台机器都有代码以及版本信息的维护,所有即使某些机器挂掉了,代码依然是安全的。

在Git中,同步更新的方式有很多种,可以把自己的更新推送给别人;也可以生成一个diff的patch,通过邮件方式把这个patch发送给别人。这些都将会在后面的文章中介绍。

建议:虽然分布式版本控制没有服务端的概念,但一般在一个Git系统中,为了方便大家交换更新,会找一台机器作为中心服务器,这台机器的目地只是为了方便大家交换更新。即使这台中心服务器挂了,大家依然可以继续工作,只是相互之间交换更新比较麻烦。

Git VS SVN

Git 与 SVN 区别点:

  • 1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
  • 2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
  • 3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。
  • 4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
  • 5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

环境部署


安装

Git刚开始只能支持Linux和Unix环境,后来才慢慢的支持Windows系统。

由于我主要是在Windows环境下工作,所以下面就主要介绍Windows上面安装Git。一般在Windows下使用Linux/Unix的工具时,需要Cygwin这样的模拟环境。但是已经有人把模拟环境和Git打包好了,msysgit是Windows版的Git,从这里下载,然后按默认选项安装即可。

Git 各平台安装包下载地址为:http://git-scm.com/downloads

安装完成后,在开始菜单里找到"Git"->"Git Bash",弹出一个命令行窗口,就说明Git安装成功!

配置

Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量。

给Git环境配置全局的用户名和邮箱地址,这样每一个从这台机器上提交的更新都会标上这些用户信息。

git config --global user.name “your user name”
git config --global user.email “your email address” 

Git命令流



在Git中支持上百个命令,每个命令又有很多的选项,所以初学者看到这些就会有一些恐惧。

其实,真正接触过Git一段时间后,会慢慢的发现我们会经常使用的命令也就十几二十个,掌握了这些命令之后就可以满足我们大部分的日常工作了。

下面是我根据日常使用整理的一个Git命令流图,包括了一些常用的命令,可以方便自己查阅。

不要被密密麻麻的箭头吓到,其实都是比较初级、常用的命令,后面的文章会详细介绍图中命令的用法以及Git中的一些基本概念。注意,图中没有涉及branch、patch等信息,但是后面的文章会进行介绍。

                                      Fighting!!!

时间: 2024-10-10 23:16:31

一、Git简介的相关文章

Git Step by Step – (1) Git 简介

由于工作的需要,代码版本控制工具要从Perforce换成Git.说实话,刚开始真的很不适应,要从一个可以很好的支持用户界面的工具转到一个命令行工具,而且Git中有几百个命令,一下子就傻眼了. 但是经过一段时间的使用和熟悉,已经慢慢适应了.所有准备一个整理一个Git使用系列,是对自己使用Git的一个总结,也希望可以对同样刚开始使用Git的同学一些帮助.下面就开始探索Git了. Git简介 Git是Linus用C实现的一个分布式版本控制工具,注意这里对分布式的强调.不同于Git,像Perforce.

Git简介【转】

本文转载自:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 Git简介 Git是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git有什么特点?简单来说就是:高端大气上档次! 那什么是版本控制系统? 如果你用Microsoft Word写过长篇大论,那你一定有这样的经历: 想删除一个段落,又怕将来想恢复找不回来怎么办?有办法,先把当前文件“另存为……”一个新

Git 简介和下载安装

Git 简介: Git 是处理文本文件的版本管理系统. Github获取Git的提交历史,并保存在互联网,以供远程(联网)访问. 工作过程: 1)创建本地分支,在本地分支编辑,修改,提交. 2)push到远程分支 3)申请merge到主分支,发布请求 Pull Request 4)审核merge 5)将主分支最新提交pull到本地 Git使用即重复上述步骤 相关术语: Local:即本地电脑 Remote:联网访问 Git:版本控制程序 Github:获取本地提交记录,远程存储. commit(

Git学习:版本控制、Git简介与安装

1.什么是版本控制(Version Control) 2.Git简介 3.Git的安装 3.1 Linux环境下安装Git 3.2 Windows环境下安装Git 1.什么是版本控制(Version Control) 如果你长期使用过某个软件,或者长期玩过某款游戏,那你就应该听说过“版本”一词,甚至遇到过软件版本的更新,比如腾讯QQ最新版是9.1.6版本,英雄联盟最新版是9.14版本.从用户的角度来说,软件的版本往往是越新越好,因为越新的版本一般意味着更多的功能.更好的界面以及更少的BUG.但是

git简介,及协作开发

git 简介 """什么是git:版本控制器 - 控制的对象是开发的项目代码代码开发时间轴:需求1 > 版本库1 > 需求2 > 版本库2 > 版本库1 > 版本库2 """ git与svn比较 git的工作流程 git分支管理 git使用 安装 # 1.下载对应版本:https://git-scm.com/download # 2.安装git:在选取安装路径的下一步选取 Use a TrueType font in

Git 简介、下载安装、配置

Git简介 Git 是一个开源的分布式版本控制系统,与SVN不同,Git采用了分布式版本库的方式,不需要服务器端软件的支持. Git 与 SVN的区别 Git 是分布式的,SVN 不是,这是 Git .SVN最核心的区别. Git 将内容按元数据方式存储,而 SVN 是按文件,SVN把文件的元信息隐藏在一个 .svn文件夹里. Git .SVN 中分支的概念不同 Git 没有一个全局的版本号, SVN 有 Git 的内容完整性要优于 SVN.Git 的内容存储使用的是 SHA-1 哈希算法,能确

Git -- 简介

简介 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了. Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢? 事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码! 你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS.

Git - Git简介与客户端安装

简介 Git是目前世界上最先进的分布式版本控制系统(没有之一)! 集中式版本控制系统(CVS/SVN),版本库是集中存放在中央服务器的,而一般工作的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始工作,工作完成后,再把自己修改过的作品提交给中央服务器. 分布式版本控制系统(Git),分布式版本控制系统没有“中央服务器”,每个人的电脑上都是一个完整的版本库,版本库之间可以相互推送. 安装 在Windows10上使用Git,点击下载安装包,提取码:5rbo,然后按默认选项安装即

Git学习之路(1)-Git简介

▓▓▓▓▓▓ 大致介绍 Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件 ▓▓▓▓▓▓ Git的诞生 Git是由Linus编写的,这个名字应该不会陌生,著名的Linux就是Linus的杰作!(厉害的人干啥都厉害),虽然Linus创建了Linux,但是Linux的壮大是由全世界热心的参与者共同努力的结果,