前言:虽然之前也有听说并接触过git,但是真的的基础学习git是在前段时间学习android的时候,这里要感谢《第一行代码》这本书。这些日子要和朋友一起做一个小项目,需要用到git来管理代码,而他对git的了解和之前的我一样。于是就写了这篇博客,总结一下之前学习的git的内容,归纳整理巩固一下,也顺便做一个新手向的引导。
初识git
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
好了,介绍完git的基本信息,我们开始进入第一步——安装git
安装Git
在Linux上安装Git
由于git和Linux操作系统都是同一个作者,因此git在Linux上的安装是最简单方便的。首先,你可以试着输入git
,看看系统有没有安装Git:
$ git
The program 'git' is currently not installed. You can install it by typing:
sudo apt-get install git
像上面的命令,有很多Linux会友好地告诉你Git没有安装,还会告诉你如何安装Git。
如果你碰巧用Debian或Ubuntu Linux,通过一条sudo apt-get install git
就可以直接完成Git的安装,非常简单。
老一点的Debian或Ubuntu Linux,要把命令改为sudo apt-get install git-core
,因为以前有个软件也叫GIT(GNU Interactive Tools),结果Git就只能叫git-core
了。由于Git名气实在太大,后来就把GNU Interactive Tools改成gnuit
,git-core
正式改为git
。
如果是其他Linux版本,可以直接通过源码安装。先从Git官网下载源码,然后解压,依次输入:./config
,make
,sudo make install
这几个命令安装就好了。
在Mac OS X上安装Git
如果你正在使用Mac做开发,有两种安装Git的方法。
一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:http://brew.sh/。
第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。
在Windows上安装Git
相信更多的人可能还是使用Windows操作系统。其实在Windows上安装Git也很简单,有人已经把模拟环境和Git都打包好了,你只要下载一个exe安装程序来安装就行了。接下来你会看到下图页面
下载下来之后双击安装包进行安装,一路下一步就可以了。
创建代码仓库
在Windows操作系统中使用Git是可以在一个叫做Git Gui的图形界面中操作的,如下图:
不过我们学习Git的使用的话,还是尽量使用Git的各种命令,因为这才是你学习Git应该掌握的核心技能。而且,不管在哪个操作系统中,使用命令来操作Git都是通用的,这对于以后更换开发环境有很大的帮助。
进入正题,在Linux系统中,使用Git进入shell界面就行了。而在Windows系统中,你需要打开Git Bash。
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。命令如下:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
配置完你的身份之后,你也可以使用命令来查看是否配置成功,只需要将名字和邮箱地址去掉即可,如下图
配置完你的身份之后,这样你提交代码的时候Git就知道是谁提交的了。
接下来就是开始创建代码仓库了,仓库(Repository)是用于保存版本管理所需信息的地方,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
本地提交的代码都会被提交到代码仓库中,如果有需要可以推送到远程仓库中。
首先进入到你要创建代码仓库的项目目录下,比如我有一个项目demo,如下图:
注意:在Windows系统中,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。
然后在这个目录下面输入如下命令:
$ git init
仓库创建完成后,会在这个项目的根目录下生成一个隐藏的.git文件夹,这个文件夹就是用来记录本地所有的Git操作的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。我们可以通过ls -al命令来看一下,如下图
如果你要删除本地仓库,只需要删除这个文件夹就行了。
提交本地代码
代码仓库创建完了,现在可以提交代码了。提交代码只需要两个命令——add和commit。add是用于把想要
提交的代码先添加进来,而commit才是真正的去执行提交操作。
我们先在这个目录中新建一个demo.txt文件和一个src文件夹用来进行提交操作。
创建好文件之后我们查看一下
接下来,使用add这个命令添加文件。
$ git add demo.txt
这是添加单个文件的方法,如果你想添加某个目录,那只要在add后面加上目录名就行了,比如我们要添加src目录下的所有文件。就可以使用如下命令
如果你有非常多的文件及文件夹都需要提交,这样添加的方法就有点复杂了。Git当然也考虑到了,如果你要一次性添加所有文件,那只需要在add后面加上一个点,就表示添加所有文件了,命令如下
$ git add .
现在文件都已经添加好了,接下来就可以提交了。命令如下
$ git commit -m "First commit."
commit命令后面我们一定要通过-m参数来加上提交的描述信息,没有描述信息的提交被认为是不合法的。而且一个有意义的提交描述信息对于自己和他人的信息阅读都是很重要的。
git commit
命令执行成功后会告诉你,1个文件被改动(我们新添加的demo.txt文件,文件夹是空的),插入了一行行内容(demo.txt有一行内容)。
在学习这块的时候,还在网上看到到了这个,这个也是我之前不知道的:
所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,前面我们举的例子只是为了演示,如果要真正使用版本控制系统,就要以纯文本方式编写文件。
因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。
使用Windows的童鞋要特别注意:
千万不要使用Windows自带的 记事本编辑任何文本文件。原因是Microsoft开发记事本的团队在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载 Notepad++代替记事本,不但功能强大,而且免费!记得把Notepad++的默认编码设置为UTF-8 without BOM即可
Git的安装,仓库的创建,文件的提交就是我们初识Git的内容了,接下来修改文件,撤销提交的修改等内容了,请看下一篇内容