Git 介绍

http://blog.jobbole.com/20069/   蒋鑫:为什么 Git 比 SVN 好


使用场景:

某研发团队2011年初开发了一款名为Apollo的信息系统,目前已发布v1.0版本。

由于销售业绩良好,因此研发团队正在着手v2.0版本的开发工作。

但就在这个时候,有客户发现v1.0版本有一严重bug,如不及时修复将造成严重后果。

研发团队收到bug报告后立刻安排部分研发人员对v1.0版本进行修复,但其他研发人员则继续开发v2.0版本的新功能。

修复bug的研发人员很快找到问题原因并对问题代码进行了修复,很快发布了v1.1版本给了客户,因此没有造成重大损失。

Bug修复后研发人员将修复后的代码整合到研发主线中来,这样就可以保证今后发布的版本不会再出现此问题。

就这样研发团队在大家的共同努力下工作有条不紊的进行着

包青天注:关键词是"分支"和"主线"!


Git现在如日中天,要是不会一点都不好意思自称为攻城师。用过CVS、SVN后再用Git,一时半会儿还有点不太适应,就像习惯了Android界面一时适应不了iOS一样。那么,Git与SVN的区别到底是什么?

先不得不讲一下,需要分清git和github这是两个不同的东西,类似于linux和redhat,前者是开源的项目,后者则是利用这个开源的项目提供服务的服务商。github是一个使用git来托管代码的网站。

首先,你应该在你的电脑上安装msysgit和tortoisegit,前者是git的windows版,有了他就可以在你的电脑上创建工程,克隆工程什么的,后者则是大名鼎鼎的小乌龟,一个图形化的Git操作程序,用过tortoiseSVN的应该不会陌生,理论上只有前者也是完全可以使用git的,不过面对那赤裸裸的字符界面能受的了没几个吧。

Git与大部分版本控制系统的差别是很大的,比如Subversion、CVS等等,使用的是“增量文件系统” (Delta Storage systems), 就是说它们存储每次提交(commit)之间的差异。Git正好与之相反,它会把你的每次提交的文件的全部内容(snapshot 快照)都会记录下来。这会是在使用Git时的一个很重要的理念。

以SVN为例,源代码管理是以服务器为中心的,每个开发者都连在服务器上,本地修改,然后commit到svn服务器上。这种做法看似完美,但是有缺陷:

  • 1、开发者不能本地跟踪代码版本,因为所有的信息都是在服务器上。你把本地的代码改了很多,但是又不能提交。通常,本地只能缓存一个版本。对于小项目无所谓,但是项目一复杂,人员多就麻烦了。通常你本地的代码都全是红色的。自己都不知道今天修改了什么, 有哪些修改是真正应该提交给svn的。
  • 2、因为第一点,一旦离开服务器你将无法正常工作。因为本地不能跟踪代码版本。  你的几乎任何操作都必须连上服务器。比如,show log,blame,show history等等。
  • 3、对于大型项目,svn几乎不可用。比如linux内核项目,开发者何止几万?都直接提交给svn服务器的话还不乱套了。
  • 4、对于个人的项目而言(或者对于小公司的项目),不用版本控制当然不行,但是为了用版本控制而专门架设svn服务器不但麻烦而且浪费。

当然,以上问题Linux内核的作者Linus Benedict Torvalds也遇到了这些问题,于是他决定再一次改变世界, 重写一个可以本地使用的svn。

Git没有服务器,装上Git软件之后,你就可以指定本地的文件夹进行版本控制了。你可拔掉网线,然后在本地修改,commit,revert(rollback), branch, restore, show log, blame, history 等等,全部你之前在svn里面可以用的操作。

如果每个人都自顾自的开发,那么怎么协作呢?

通常Git比SVN会多出两个操作,就是 pull 和 push。开发者之间通过 pull 和 push 操作, 把别人的修改拉过来,或者把自己的修改推给别人。

Git官方网站的口号就是everything is local(一切皆本地),由此可见Git面世之初的定位便是如此。当然大部分程序员都是在Windows下工作,下载Git的windows客户端 msysgit 安装即可,具体安装过程省略(自动识别windows 32 或64位)。

高手习惯于用命令行,但初学者一般还是要GUI客户端的,推荐TortoiseGit,类似于TortoiseSVN,基本操作类似,容易上手。https://code.google.com/p/tortoisegit/

依次安装msysgit和TortoiseGit后,就可以像操作SVN一样创建Git版本库了。

在任意目录下右击,出现TortoiseGit的右键菜单,点击Git Clone,

URL填入在线托管的Git地址,Directory便是本地文件夹,其他选择默认即可。

下面列举几个常用的免费Git托管网站:

  • 1、Github.com https://github.com/ 最著名的免费Git托管网站,曾一度被我天朝大墙屏蔽,缺点是免费的不支持私有项目。
  • 2、京东代码库 https://code.jd.com/ 京东商城的免费Git托管网站,提供一键搬迁功能,对所有公有、私有项目免费提供容量为1G的存储空间。
  • 3、开源中国代码托管 https://git.oschina.net/ 支持公有项目和私有项目,成员无限,项目1000个。
  • 4、CSDN Code https://code.csdn.net/ 支持公有项目和私有项目,提供512MB 存储空间。
  • 5、Bitbucket https://bitbucket.org/ 也是国外比较著名的Git托管网站,免费用户支持公有和私有项目。

将远程版本库克隆到本地后,就可以像操作SVN一样管理代码了,Diff,Revert,Add,Commit等等。与SVN不同之处是多了3个操作:Pull,Fetch,Push。

最后介绍一下两个概念:

  • 1、Git目录。是为你的项目存储所有历史和元信息的目录——包括所有的对象(commits,trees,blobs,tags),这些对象指向不同的分支。每一个项目只能有一个“Git目录”(这和SVN,CVS的每个子目录中都有此类目录相反),这个叫“.git”的目录在你项目的根目录下,默认是隐藏属性(这是默认设置,但并不是必须的)。
  • 2、工作目录。Git的“工作目录”存储着你现在签出(checkout)来用来编辑的文件。当你在项目的不同分支间切换时,工作目录里的文件经常会被替换和删除。所有历史信息都保存在“Git目录”中;工作目录只用来临时保存签出(checkout) 文件的地方,你可以编辑工作目录的文件直到下次提交(commit)为止。

来自为知笔记(Wiz)

时间: 2024-10-11 17:29:18

Git 介绍的相关文章

Git介绍

Git介绍git是一款源代码管理工具(版本控制工具)人工去处理不同版本的代码(做相应的备份)会很麻烦 ##Git安装 ##初始化Git仓储/仓库- 这个仓库会存放git对我们项目代码进行备份的文件- 新建项目  打开项目文件夹(工作区:不包括.git)  右键git bash  命令:'git init'  执行:初始化空的git仓库在新建项目目录(默认是隐藏文件夹.git) ##配置个人信息(姓名和邮箱)- 就是在git中设置当前使用的用户是谁- 每一次备份都会把当前备份者的信息存储- 命令:

git介绍及使用

github使用简单介绍 介绍 Git是由Linux的创始人Linus Torvalds开发的.GitHub是为开发者提供Git仓库的托管服务. GitHub与Git是完全不同的东西.在Git中,开发者将源码存入名叫“Git仓库”的资料库中并加以使用.而GitHub则是在网络上提供Git仓库的一项服务.也就是说GitHub上公开的软件源码全都是由Git进行管理的. GitHub这一服务,为开源世界带来了社会化编程的概念.在我看来就是每个人都自由的分享,更改,发表代码.这给软件开发带来了一场变革,

Git介绍,安装,Git+Git flow使用

特点: 1.可以快速的切换项目分支. 2.回滚某个分支的版本. 3.每次切换分支不用修改配置文件 (因项目而定义) 4.不用 新建/切换 虚拟目录/域名.因为都是在同一个目录下进行. 5.上面这些对你有吸引力吗? 喜欢那就参与进来吧.  什么是Git  Git是Linux Torvalds为了帮助管理 Linux,内核开发而开发的一个开放源码的版本控制软件. 特点是快速,开源,分布式管理系统.  它可以对代码的修改进行回滚,将错误的代码剔除.  或者简单地跟踪哪些人修改了代码的哪些行的内容. 对

Linux及Git介绍

1.Linux基础知识 为什么要学习Linux + 因为后所需要用到的工具是基于Linux平台所使用的工具. 很难学吗? + 不难就是些命令. 什么是Linux + `Linux作者:林纳斯·托瓦兹` 林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds, 1969年~ ),著名的电脑程序员.黑客.Linux内核的发明人及该计划的合作者. 托瓦兹利用个人时间及器材创造出了这套当今全球最流行的操作系统(作业系统)内核之一.现受聘于开放源代码开发实验室(OSDL:Open So

git 介绍及其使用总结

  版本控制 Git                   目录  目录 2 第1章 Shell和vi 4 1.1 什么是shell 4 1.2 shell分类 4 1.3 认识bash这个shell 5 1.4 vi编辑器 6 1.5 SSH 8 第2章 版本控制 10 2.1 关于版本控制 10 2.2 本地版本控制系统 10 2.3 集中式版本控制系统 11 2.4 分布式版本控制系统 12 第3章 Git 13 3.1 Git安装 13 3.2 Git工作原理 14 3.3 Git本地仓库

Git介绍及基本操作

Git基本概念 在Git中,我们将需要进行版本控制的文件目录叫做一个仓库(repository),每个仓库可以简单理解成一个目录,这个目录里面的所有文件都通过Git来实现版本管理,Git都能跟踪并记录在该目录中发生的所有更新. 现在我们已经知道什么是repository(缩写repo)了,假如我们现在建立一个仓库(repo),那么在建立仓库的这个目录中有一个“.git”的文件夹.这个文件夹非常重要,所有的版本信息,更新记录,以及Git进行仓库管理的相关信息全部保存在这个文件夹里面.所以,不要修改

git介绍及相关命令

什么是git?用于代码版本控制的工具.什么是github?各版本代码的托管平台. linux下git安装,步骤如下:#yum -y install git#git --version //检查是否安装成功 本地建立repository仓库:#git init#git status //查看本地库状态,默认为master 根据需求添加本地文件到本地库:#git add local_files#git commit或者加上-m来直接添加版本说明若未提交可返回到上个版本:#git reset --ha

开发实用技巧:Git——介绍

Git 分布式版本控制系统.2005 - 至今,创造者:Linus Torvalds.特点:快速.非线性.分支. 为什么使用Git? 1. 强大 Git在开发伊始的目标就是管理Linux内核.目前为止,使用最久.最经典的Linux kernel v2.6版本的不完全统计代码量是592万行,如果这样的一个工程Git都可以信手拈来的话,除了强大我们还能说什么呢? 2. 本地 Git作为版本控制系统,在其领域并非唯一,同样盛行的还有SVN.CVS等版本控制系统.但不同与Git的是,这两者都是集中式版本

Git介绍以及安装

Git的作者是大名鼎鼎的Linux之父Linus Torvalds. Git是一个分布式的版本控制系统,Git三个字母的含义可以理解为"Global Information Tracker"(全局信息追踪器):至于Git与其他版本控制系统的对比什么的,自行百度吧! 至于Git的关键特性,有如下几点: 有助于分布式开发 每个用户可以在自己的版本库中独立且同时开发,而不需要与一个中心版本库时刻同步. 性能优异 使用"压缩"和"差异比较"技术,并且使用