你有了解过git吗?来,我们头脑风暴一波~~



你还在用SVN或者CVS什么的吗!~“现在都流行Git了吧!”,目前最火的版本控制软件应该就是Git了吧???我这么觉得,因为SVN或者CVS什么的不怎么了解,听得最多的是Git,那么为了不被人鄙视,也为了可以鄙视别人,来简单了解一下git!

git是什么

1
2
3
4
5
Git是目前世界上最先进的分布式版本控制系统。
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管最初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。例如 很多 Freedesktop 的项目迁移到了 Git 上。

git的功能特性?

1
高端帅气上档次,狂拽炫酷吊炸天

git和github的区别?

1
2
git是版本控制软件,目前最先进最流行的,也是一种分布式的版本管理系统,Linux的创造者Linus写的。
github 是一个网站,用于广大开发者开源自己的代码,也提供私有仓库的付费功能,而它采用的版本控制软件就是git,gitHub是基于git的代码库托管站,也算是程序员的SMS(以码会友),其中一个主要的开源代码发布或托管站git的作用就是对文件进行版本管理,方便在不同版本进行切换修改,类似文件分不同时间备份让后需要时找回其中一份代替,不过更方便使用。

SVN与Git的最主要的区别?

1
2
3
4
5
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。

CVS是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。与它相类似的代码版本控制软件有subversion。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。但是由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了CVS。

Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

Git库中由三部分组成?

1
2
3
1、工作目录:用户本地的目录; 
2、Index(索引):将工作目录下所有文件(包含子目录)生成快照,存放到一个临时的存储区域,Git 称该区域为索引。
3、仓库:将索引通过commit命令提交至仓库中,每一次提交都意味着版本在进行一次更新。

大家好奇的Git GUI和Git Bash问题?

1
2
3
4
5
6
7
8
9
10
11
12
Git GUI: Graphical User Interface(用户图形界面)
意思是是否要在这里面使用git shell的用户图形界面?它的用途是比如你先开始在某个文件夹打开git shell的图形界面就可以使用ta,而不用cd切换目录。
(shell是linux/unix系统的外壳,也可以理解为命令行接口,就是你输入并执行命令行的地方,bash是shell的一种,最常用的shell之一。)
例如:
你在你的linux上运行: ps | grep $$
如果运行结果为bash,就说明当前默认shell是bash
git 有命令行的方式去使用它,也有图形界面的方式使用它(gitk)

Git Bash:git bash是Windows下的命令行工具。
基于msys GNU环境,有git分布式版本控制工具,也主要用于git。
GNU环境,就是说如果你喜欢linux/unix的环境,就可以选择使用git bash。
里面有你熟悉的linux工具,tar,grep,awk等,且可以安装编译环境gcc,make等。

so?那么问题来了,既然都是命令行,那么git bash和git cmd有区别??

1
the answer is~~~~bash本质上是基于linux的,而cmd是针对windows的。