Git参考手册(1)-Git能为我们做什么

过去你可能使用过像Subversion、Perforce或者其它SCM(Software Configuration Management,软件配置管理),但是Git对于版本的控制跟你之前用过的这些版本控制软件有很大的不同。抛弃对版本控制工作流程的设想,并了解Git自己的处理方式,往往更有利于学习Git。

  好,那我们开始吧。假如你现在正在设计一个新的源代码管理系统,在你使用相关管理工具之前,你会如何处理基本的版本控制呢? 你有可能只是简单的拷贝工程目录:

 $ cp -R project project.bak 

    那样,当文件变得一团糟的时候你可以很容易的恢复文件,或者对比目录拷贝前后文件的改变。如果你是一名偏执狂 ,你可能会一直乐于继续这样做,并在备份的目录加上时间:   

 $ cp -R project project.2010-06-01.bak 

    在这种情况下,你将可能会有许多工程项目快照(备份)用来对比或者检查修改。你甚至可以用这种模式很有效的与其他人分享修改。如果你压缩你的项目并放在你的网站上,其它开发人员就可以下载,并且进行修改,然后很方便的将修改打包成补丁发给你: 

 $ wget http://sample.com/project.2010-06-01.zip
 $ unzip project.2010-06-01.zip
 $ cp -R project.2010-06-01 project-my-copy
 $ cd project-my-copy
 $ (change something)
 $ diff project-my-copy project.2010-06-01 > change.patch
 $ (email change.patch)

    最初的开发者就会在他们的工程中使用这个补丁,这样在这个工程项目上就有你的修改了。 这就是最近几年来很多开源工程的协作方式。这种方式相当不错,所以我们想写一个工具出来让这个工程变得更快更简单。Subversion为每个文件都提供版本信息,Git与SubVersion不同,它简单的保存工程项目的快照而并不需要每次去拷贝整个目录,这就是Git的本质。使用git commit命令告诉Git你想保存你的工程项目快照,Git就会在一个manifest上记录这时你工程目录里面所有文件的内容。通过其他Git命令就可以根据manifest文件进行内容的differ或者pull等等。      

    如果你使用Git作为你保存、对比和合并工程项目内容的工具,你可能就会感觉到事情原来可以这么简单。

 

  本文参考网站: http://gitref.org/index.html

posted on 2012-11-18 17:12  Nick Yang  阅读(258)  评论(0编辑  收藏  举报