一、下载最新版的Git
Windows下去Git的官网去现在最新版的Git.exe,并安装截止到发稿,最新版是2.12.0。
Mac OS下,也要去Git下去下载对应的版本。下载完成后双击运行,然后再双击.pkg文件,进行安装。
下载链接
二、Windows下安装
- 双击安装文件,然后选择安装路径,再Next。
-
根据默认选项,选择安装创建桌面快捷方式、Git Bash、Git GUi、关联一些后缀的文件等。
- 确认“开始”菜单中的名字,直接Next。
-
在“Adjusting your PATH environment”选项中,使用默认选项第二个“Use Git from the Windows Command Prompt”,使用Windows命令提示。
-
在“Configuring the line ending conversions”中依然使用默认“Checkout Windows-style, commit Unix-style line endings”。
-
在配置Git Bash的终端模拟器上,依然选择默认的MinTTY。
-
在配置额外的功能中,保持默认。
- 最后点击Install进行安装
三、Git的初始化和基本使用
从这里开始,就要介绍Git的使用了。这里我主要参照了廖雪峰的网站。
- 初始化本机
打开Git Bash客户端,输入下面的命令。
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
-
创建仓库
仓库就是一个文件夹,Git就是用来跟踪这个文件夹里文件和文件夹的修改和删除。一般的思路是先创建一个文件夹(暂时称为总仓库),然后在这个文件夹里再去根据不同的项目创建不同的项目仓库repository,最后初始化这个仓库。初始化成功之后,会在你的项目仓库下看见一个.git的隐藏文件夹。看下面的命令
- 添加文件
先要知道的一点:所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。包括微软的word格式就是二进制格式,所以也无法跟踪文件内容的变化。
添加文件也分为两步:
①添加到仓库;②提交;
下面我在刚才创建的仓库下创建了一个ReadMe.txt的文件,在Git Bash中输入下面的命令进行提交。使用下面的命令进行提交:
①添加文件(将文件添加到暂存区中,关于暂存区后面会讲到):
git add . 这个是添加仓库下的所有文件
git add 指定文件的名字包含后缀 添加指定的文件
②提交文件
git commit -m "这里填写本次提交的注释"
- 查看仓库状态
查看仓库内的文件变化,这里可以显示文件被修改的情况。
①已添加,待提交的是绿色;
②已修改,待提交的是红色;
** 注意:修改完成之后,必须要重新add,然后在commit。**
git status
- 查看本地文件和Git仓库文件的区别
这里主要是查看一些文本的变化内容。二进制的文件,无法看到变化。
git diff <文件全称>
- 查看提交日志
git log
- 版本回退
就是回到以前的版本。这里大致有三种方式:
①回到上一个版本,或者上上个版本
git reset --hard HEAD^
其中HEAD就代表是上一个版本,上上个版本就使用HEAD。如果要再向上50个版本,那么就是HEAD50
②回到指定的某个版本
这个需要配合git log来使用。我们每提交一次,Git就会生成一个id。这点类似SVN的版本号。我们要回到自定的版本就使用这个id。所以要先使用git log来查到指定版本的id。
git reset --hard 指定版本id的前几位
注意:这里每必要把id写全,只要写前几位能让git找到唯一的这个id就i可以
- 删除文件
删除文件也算是一次修改,所以删完之后也要提交。过程如下:
git rm 要删除的文件
git commit -m "注释内容"
- 撤销本次提交的内容
当你发现自己修改错了,而且已经提交了的时候,可以使用”一键还原“功能。
git checkout -- 要恢复的文件名
- 再来认识几个概念:工作区、版本库、暂存区
①工作区:就是你创建的项目仓库。
②版本库:项目仓库下的隐藏文件.git就是版本库。这里面包含了很多东西,其中就包括暂存区。同时,Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
③暂存区:位于版本库中。这是Git和其它版本控制系统不同的地方。暂存区有什么用呢?当我们add的时候,就是将变化的文件加到暂存区中。然后commit的时候,将暂存区中所有的内容提交到当前的分支(也就是master,其它用户的话可能是其它分支)。 - Git管理的是修改,而不是文件
这也是Git的一个优势。以SVN为例,当你的文件添加到版本库之后,发生了变化,那么下次提交的时候,就会一起提交上去。可是Git不是这样的。当你修改了文件,或者添加删除了文件之后,你直接commit是提交不了任何东西的。你需要先把这些变化add到暂存区,然后commit的时候才能把暂存区的内容提交到版本库。说实话,我也没看出来这算是什么优势?
四、使用Git来操作GitHub
- 从GitHub上克隆clone
有时,我们GitHub上clone一个开源的工程或者文章,先切换到要存放的路径下,然后使用下面的命令:
git clone github的地址
如下图所示,就完成了。
好了,关于Git的基本操作就完成了,下一篇介绍Git的实际使用。