不要把这篇文章当做给编程人员的技术文章,即使你对编程一无所知,按照这篇文章的指引一步步学习,仔细模仿,也可以很容易地学会如何去做。更重要的是,这篇文章将让你介绍如何让git成为你的工作日志,成为你的备份工具,成为你的项目管理软件。没错,git让这一切变得如此简单。
背景
OK,什么是git? Wikipedia(http://en.wikipedia.org/wiki/Git_(software))告诉我们:“Git (/ɡɪt/) is a distributed revision control system with an emphasis on speed.“ 这是一个分布式版本控制系统。听起来似乎很霸气,那么它是谁开发的呢?这个名字就更霸气了, Linus Torvalds——Linux之父。
什么叫版本控制系统呢?
我们来举个例子。比如说,你要写个商业策划书,经过几天熬夜,总算在2012-01-01写了一个初稿 proposal.doc。又经过两天的奋战,你对之前的文档做了更深入的细化,于是把之前的文件改名成了 proposal-2012-01-01.doc 作为备份。后来经过你和老板的激烈讨论,并对文档反复修改,终于在2012-01-09把第7版交给了老板,算是完成了这份工作。回头看看当前的工作文件夹,呵,充满了名为 proposal-2012-01-01.doc,proposal-2012-01-03.doc。。。proposal-2012-01-09.doc 的文件。你不舍得删了它们,顺手打个包压缩下扔进了自己的归档文件夹里,也许永远都不会看它们了;即使半年后想要来参考一下,你也顶多是看看最新版的文件,那些历史版本文件之间的关系恐怕永远也记不起来了。
这是个很普遍的例子,任何用电脑写过报告的人都会有这种经历。保存某个修改的文件时我们习惯于给较早的版本加个日期(或者其他你感兴趣的方式)做为备份,生怕自己对稍后的某个修改不满意好恢复回去;如果有强迫症,估计你恨不得写一行备份一次——如果你学会了git,恐怕这种强迫症会更加强烈,因为用起来实在是太爽了。这就是一个非常朴素的版本控制系统,你人为的给某个文件加上时间的标记,把编辑的某些里程碑保存下来,方便自己将来查阅、备份、恢复。
既然我们有这么普遍而强烈的需求,版本控制系统软件自然备受关注,并不断更新升级。从 CVS 到 SVN 再到 GIT,版本控制系统的管理模式从集中向分布演变。git的分布式特点就在于,虽然我们可以有一个最核心的中央服务器来管理所有的文件,你可以在本地生成一个局部的版本控制系统,你的版本历史都可以先在本地保存,直到获得一个满意的版本后,再提交到服务器中。对于个人来说,甚至完全不用理会中央服务器是否存在,自己玩单机版的版本控制就足够了——本文的目的也就在于教会你怎样玩转单机版git。
准备
工欲善其事,必先利其器。我们需要的软件很少,只有两个,TortoiseGit(http://code.google.com/p/tortoisegit/downloads/list)和msysgit(http://code.google.com/p/msysgit/downloads/list),前者是与 windows 的资源管理器(linux和mac用户借过一下)整合的git管理软件,后者是git的功能软件。
安装好TortoiseGit之后,重启电脑,鼠标右键里就会有这几个新的程序,git的相关功能都可以从这里访问到,连开始菜单都不要,是不是很方便?
(svn是另一个软件,请无视)
请选择setting,我们需要配置一下git的路径。
在红框里,我们要设置一下 git 的路径,就是你安装 msysgit的bin文件夹,比如说我的是 F:\software\develop\svn\git\PortableGit-1.7.8-preview20111206\bin,里面会有 git.exe 这个程序。
如此,我们的环境就配置好了,是不是非常简单?
实战
基础知识
接下来,我们要具体看看git如何成为我们备份的利刃。
先随便创建一个空白文件夹,作为我们实践的平台。
进入这个文件夹,鼠标右键选择 “ Git Create repository here...",弹出的对话框不用管,那个复选框不要选,ok即可。这个文件夹里就会出现一个隐藏的 .git 文件夹。如何显示隐藏文件夹?这个请放狗去搜吧。
ok,一个版本库我们就创建出来了。走到上级目录,你也许会看到,文件加上出现了一个绿色的对勾符号,表示这个文件夹已经受到了版本的控制。(这个图标的出现不一定实时,也许你要多刷新几次,甚至重启电脑才行)
常见的图标有
这个文件(夹)很干净,是最新版本文件
这个文件(夹)发生了修改,需要提交
这个文件(夹)要添加进版本库
这个文件(夹)没有在版本库中,需要添加进来(转为上一个图标的状态),或者忽略(转为下一个图标的状态)
这个文件(夹)被忽略,不受版本控制
这个文件(夹)里的内容发生冲突(这是最危险的情况,但是对于个人用户来说,几乎不会出现,出现的情况是两个人同时对一个文件做修改,后提交的人在更新时无法与前者完美融合时,这个不需要深入理解)
通过这么直观的图标暂时,你就能对自己的工作文件夹了如指掌,那些文件做了修改,当前工作是否需要提交,都一目了然。
版本分支
在进行更进一步操作时,有必要了解一下版本分支(Branch)的概念。版本分支意味着,你从当前的项目中弄出来一个拷贝,按照自己的想法胡乱修改,你之后的所有版本历史都保存在这个分支里。如果你对这个分支很满意,就可以把这个分支合并到原来的主分支里(Merge),甚至直接让这个分支作为主分支;或者你感觉到越改越糟糕,就直接回到主分支工作,仿佛什么也没有发生一样(当然这个新的分支要通过某些复杂的操作来删除,你也可以留着,作为自己惨痛教训的警钟)。也就是说,分支为你提供了一个尝试某些新道路的空间。
作为个人用户来说,有一个主分支和一个工作分支就够了。主分支作为基准一直不变,工作都在工作分支上进行,这样主分支与工作分支之间的变化就记录了你的所有工作历史。
我们来具体实践一下。
首先,git有个不太人性化的“bug“,不能够添加空白文件夹,因此我们需要先添加一个空白文件,比如 test.txt,然后在文件夹上右键选择 “Git commit"
选择添加的那个文件,写点message(git每次提交必须写上一些文字说明这次更新的内容,从而让你知道每个版本有什么变化)提交即可
在刚才的工作文件加上右键,选择 “Create Branch“
随便取名比如 develop,确定即可。
依然右键选择 “Show log“,出现如下对话框
可以看到,我们已经有了一个版本历史,它详细记录了我们的改变。上面有两个颜色标签,红色的master和绿色的develop,这个代表了我们的分支。master是我们第一次提交时系统自动生成的分支;develop是我们手动创建的。红色的代表当前的工作分支,绿色的代表存在的历史分支。我们需要把工作分支切换到 develop。
在文件夹上右键选择 “Switch/Checkout", Branch里选择develop,再查看历史,我们就会发现,develop变成了红色。
开始工作
接下来我们就可以随心所欲的工作了。编辑一下test.txt,新建文件夹,添加word,excel文件,总之,随便工作。你会看到,修改的文件加了红色的叹号,新加为被版本控制的文件加了蓝色的问号,对于蓝色问号,你可以选择右键里的 “Add“让它变成蓝色的加号(或者有时会一步到位变成绿色的对勾,这个不重要),或者不管他。
然后在根文件上,选择 Commit,再来看看历史,就会发现你的工作记录了
Commit时会有一个让你输入用户名的问题,这个完全不重要,你随便写个用户名和邮箱即可.
可以发现,develop进步了一个版本,master还停留在原处。历史显示,test.txt被修改,一个word和excel被添加;文件夹信息不回被记录。
双击下面的test.txt文件,它甚至会给你展示出这个文件发生了哪些变化。甚至连 excel 和 word 的变化也会给你选择合适的方式进行比较。
令人震惊吧!没错,git会完全忠实的记录的一点一滴,只要你commit,系统就会为你保存下来一个历史记录(不必担心空间,它会采用很先进的方式进行增量保存,远比你每次都复制要节省空间得多)
结束语
差不多已经把如何用git来进行工作的方法介绍完了,还有一个非常重要的功能没有说,怎么样恢复历史版本的文件呢?很简单,在想要恢复的文件上查看历史,选择revert即可!
即使你完全不懂编程,相信上面的讲解也可以教会你怎么样来使用了吧。赶紧来试试吧!
分享到:
相关推荐
《玩转Git三剑客》是一本专注于Git版本控制系统的学习资料,它可能包含了关于Git的深入理解和实践操作的全面教程。Git是目前最流行的分布式版本控制系统,被广泛应用于软件开发和协作环境中,对于强化学习这样的技术...
玩转Git,三本pdf书籍,学完拿下git!玩转Git,三本pdf书籍,学完拿下git!玩转Git,三本pdf书籍,学完拿下git!玩转Git,三本pdf书籍,学完拿下git!玩转Git,三本pdf书籍,学完拿下git!玩转Git,三本pdf书籍,学...
3 4 利用分支进行开发的工作流程 3 5 远程分支 3 6 分支的衍合 3 7 小结 4 服务器上的 Git 4 1 协议 4 2 在服务器上部署 Git 4 3 生成 SSH 公钥 4 4 架设服务器 4 5 公共访问 4 6 GitWeb 4 7 Gitosis 4 ...
Git学习笔记干货 Git 是什么? Git 是目前世界上最先进的分布式版本控制系统。版本控制系统是指一种记录、跟踪和管理代码变动的系统。Git 的出现解决了手动管理多个“版本”的问题,使得多人协作编辑变得更加方便。...
本压缩包文件“czbk公开课笔记git 两小时学会Git玩转Github.zip”包含了一份详细的Git学习指南,旨在帮助用户在短时间内掌握Git的基本操作,并能熟练运用Git与GitHub进行项目管理和协作。 Git是一个强大的工具,它...
3. 仓库(Repository):是Git用来保存项目的元数据和对象数据库的地方,有时也指工作目录中的.git目录。 然后我们来学习一些Git的基本操作: - 初始化仓库:通过`git init`命令在当前目录创建一个新的git仓库。 - ...
传智播客 两小时学会Git玩转Github视频配套文档
《ProGit.pdf--git学习教程》是Scott Chacon和Ben Straub共同编写的关于Git版本控制系统的官方学习指南。本教程涵盖了Git的基本概念、工作流程、配置、分支管理、远程仓库操作、服务器部署、分布式工作模式、GitHub...
最后,学习Git最重要的是要理解其工作原理和思维方式。这意味着要改变以前使用版本控制的固有思维模式,转而以Git的方式去思考,即以创建项目快照的形式管理项目,而不是简单地复制整个项目文件夹。理解了这一点之后...
"Git中文学习文档" 本资源提供了 Git 中文学习文档,旨在帮助用户快速入门 Git,并了解 Git 的使用和版本控制的重要性。文档从版本控制的历史背景开始,介绍了版本控制的定义和重要性,然后逐步引入 Git 的安装和...
Git之所以能够成为世界最先进的分布式版本控制系统,是因为其能够有效地管理大规模的项目开发,并且在离线状态下依然可以工作,提高了开发效率。Git是免费且开源的,任何人都可以从Git的官方网站***下载对应操作系统...
### Git基础知识及操作指南 #### 一、Git简介与特性 **Git** 是一款开源的分布式版本控制系统,用于高效地处理从小型到大型项目的版本管理。相比于传统的集中式版本控制系统如SVN,Git具备以下特点: 1. **分布式...
2. 快速:Git采用了增量存储和快照式版本管理,即使处理大型项目也能保持高效。 3. 安全:Git使用SHA-1哈希算法确保数据完整性,避免了数据篡改。 4. 支持分支:Git鼓励频繁地创建和合并分支,便于并行开发和测试...
Git学习的PDF包含的是Git的基本操作和常用命令的速查表,非常适合初学者快速上手和进阶者巩固知识。下面将详细阐述Git的核心概念、基本操作以及在实际开发中的应用。 一、Git核心概念 1. 工作区:电脑上的项目目录...
某~客时~ 玩转git 学会玩转git版本管理工具
基本的Git操作包括:初始化仓库(git init)、添加文件到暂存区(git add)、提交更改(git commit)、查看状态(git status)、查看提交历史(git log)、分支管理(git branch)、合并分支(git merge)等。...
在Git中,版本库是存储项目所有历史信息的地方,而分支允许用户在不同的开发线路上进行工作,这使得并行开发成为可能。提交是指用户对当前分支所做变更的记录。合并是指将不同分支的变更整合到一起的过程。重定则是...
而Git则采用了分布式模式,每个开发者的电脑上都有完整的代码历史,这样即使远程服务器出现问题,本地的代码库仍然安全。 1.2章节介绍了Git支持的多人协作特性。Git通过分支管理,使得团队成员可以在各自的分支上...
接下来,你可以学习基本的Git命令,如`git clone`(克隆远程仓库)、`git add`(暂存更改)、`git commit`(提交更改)、`git push`(推送本地更改至远程仓库)和`git pull`(拉取远程仓库的更新)等。 总的来说,...
### 知识点一:Git简介与特性 - **Git定义**:Git是一款分布式版本控制系统,主要用于追踪在...通过以上内容的学习,你可以更好地掌握Git的基本操作和GitHub的使用方法,进一步提升个人的软件开发能力和团队协作效率。