git学习总结之本地版本库管理

******************************************************************

本文为学习总结,没有深入的实践,可能有理解不周,文中资料参考自网络

******************************************************************

git是什么?

git是一种分布式版本控制工具。

什么是版本控制?

举个简单的例子来说:每当你要修改一个文件的时候,为了保证可以恢复到修改前的状态,我们一般采取的措施是,copy一份作为原始备份,然后在对文件进行修改。但是我们有通常会遇到很多混乱的情况让我们非常的头疼,比如我有一份hello.txt,经过n次修改后出现了hello1.txt,hello2.txt,hello3.txt等好多的版本,当我想要去找回我删除的某些内容时,需要挨个打开对比查找非常的麻烦,或者出现写着写着直接放弃hello3,直接在hello2上做 修改,于是又出现一个hello2_副本.txt,想要整理一下删除某些文件,又怕删除的东西还有价值;除此之外,如果hello.txt需要两个人一起处理,A从你这里copy了一份,进行编辑,你自己也继续进行编辑,结果最后进行整合的时候可想而知,非常的令人头疼。

所以版本控制工具就是为了解决这些问题,它可以帮你记录每一次的改动,不需要创建无数的备份,只需要关注每一次的改动就好了。

分布式的概念很容易理解,也就是说我们不必存在一个集中的服务来作为存储仓库,而是每一个参与者的电脑上都存储这工程的完整备份,每隔一段时间,交换一下彼此的修改,每个人就又了最新的版本。


git的产生

对于熟悉计算机知识的人来说,对于git的产生过程应该都不陌生。他就是由大名鼎鼎的Linux开发者Linus为了Linux的版本管理而开发的。

其中有趣的是,当时Linux开发者使用的是一个商业的版本控制工具免费为他们提供的,但是因为Linux开发者们都是一群开源的信仰者,不少人企图将该商业软件破解,结果被发现。于是人家收回了使用权限,据说linus一气之下用了两个多星期就写出了git的初始版本。

两个星期!!不得不服,有些人的存在就是为了重新定义牛逼二字。


创建仓库 create repository

repository,中文为仓库,非常的形象,就是git用来存储各干版本的仓库,又叫版本库。可以理解为一个文件夹。

1.创建空的目录

$mkdir myproject 创建myproject目录

2.初始化仓库

$git init 使用这个命令来将myproject创建为一个git管理的仓库,完成后,可以看到myproject目录下生成了一个.git文件,该文件用来记录仓库版本以及改动信息(不要自己随意改动)。这样我们就成功创建了版本库用来存储和管理我们的项目。


提交文件

1.创建文件并编辑内容

$vim start.txt 使用vim创建strat.txt文件,并在里面填写内容。注意:创建的文件一定在仓库目录下。否则git无法进行管理

$git status 查看git状态命令,可以看到文件名变为红色,表示该文件有改动,文件仍在工作区

2.add文件到缓存区

$git add start.txt 将文件由工作区添加到缓存区。

$git status 发现文件名变为绿色,表示文件被添加到缓存区。

3.commit到版本库

$git commit -m bababababa 使用该命令将缓存区中的文件全部提交到版本库。-m 后面是随意的字符串,主要对提交做出说明

4.log查看提交内容

$git log 查看提交

这里说明一下工作区,缓存区,版本库的区别,结合我自己的理解尝试举个不准确的例子说明一下:

工作区:编辑所在的区域,就像单独的一个作业本,你在上面写作业。

缓存区:暂存编辑完成的文件的区域,好比是书包,你每完成一门作业,就将这个本子放进书包中。

版本库:记录每次改动的仓库,好比是老师,你把你整理好的书包里面的作业内容全部交给老师。也就是说,工作区的文件需要单独添加到缓存区,而缓存区中的可以一次性提交。


删除文件

这里的删除指的是从版本库中删除文件,即commit过的文件。

1.$git rm 文件名   将文件取回缓存区

2.$git commit -m babababa 告诉git 删除了文件


更改恢复

1.$git cheakout --文件名 清除工作区的修改,恢复文件到最近一次add或者commit状态。

2.$git reset HEAD 文件名 将暂存区的暂存的修改拿回工作区,接着选择继续修改,或者选择1中清除修改。

3.$ git reset --hard 版本号 使用版本回退将工作区内容恢复到版本号对应的提交的内容。


常用命令

$git diff HEAD -- 文件名 比较当前工作区和最新提交的版本的区别 

$git log 产看提交日志,包括查看提交信息以及提交id

$git status 查看工作区状态

你可能感兴趣的:(git学习总结之本地版本库管理)