Git的安装以及配置
1.* Git的安装
下载地址:官网
Git的安装,网络上一找一大堆,所以这里笔者就简单将百度经验搬过来进行相关的简单介绍,大家熟悉一下步骤也就是了。
1.双击既打开安装设置界面,然后点击Next:
2.配置安装组件,默认即可,点击Next,默认已经都帮我们勾选上了。包括创建桌面快捷方式、Git Bash、Git GUI、已经目录和后缀关联等:
3.在Adjusting your PATH environment选项中,默认即可,点击Next,这个步骤最好选择第二项Use Git from the Windows Command Prompt,这样在Windows的命令行cmd中也可以运行Git命令了。这样会对以后的一些操作带来方便:
4.配置行结束标记,保持默认Checkout Windows-style, commit Unix-style line endings:
5.在终端模拟器选择页面,默认选择即可,配置后Git Gash的终端比较易用,然后点击Next:
6.最后配置Git额外选择默认即可。然后点击Install开始安装。如果之前安装过旧版本,会先卸载然后再安装新版本:
7.安装完成,默认点Finish即可。这样会在浏览器打开新版本的信息。
8.安装后的检验
安装完成之后,如果在桌面右键出现下图,则说明安装成功:
然后打开Git Bash Here:
注意:在哪里点击,打开的窗口就会自动定位到哪里,比如我们在Git的本地仓库中选择Git Bash Here,然后小窗口就会自动定位到相关的目录下。
输入命令:git version,显示版本号如下,说明成功安装了Git。
1.* Git的配置
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置。下面我们就通过相关的截图来介绍:
配置使用者信息:
配置用户名:
点击查看代码
git config --global user.name xxx
配置邮箱:
点击查看代码
git config --global user.email [email protected]
local、global、system三种级别:
- local当前项目有效(工作目录/.git/config)
- global当前用户有效(用户目录/.gitconfig)
- system所有用户有效(git目录/etc/gitconfig)
Git相关操作
1.* 创建版本库
上面我们已经介绍了相关的Git的安装,以及一些简单的配置,现在我们来介绍一下如何创建版本库:
命令:
点击查看代码
git init
该命令将创建一个名为.git的子目录,这个子目录含有你初始化的Git仓库中所有的必须文件,这些文件是Git仓库的骨干。但是在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。
注意:使用创建版本库的命令git init的时候,首先要保证git的客户端已经在本地仓库的目录下了。
如果Git客户端不在本地仓库的目录下,那么可以使用如下图的命令到达本地仓库目录下:
点击查看代码
cd g:/gitRepository
有两种取得Git项目版本库的方法:
第一种是在现有项目或目录下导入所有文件到Git中;
第二种是从一个服务器克隆一个现有的Git仓库。
我们先说一下在本地创建git项目版本库,什么是版本库呢?
前面介绍过,版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。默认处于master分支,HEAD指针指向master分支。
1.* 把文件添加到仓库
注意:把文件添加到仓库的前提是,在本地仓库中需要有文件,如果没有文件的话是没有办法添加的。
在本地仓库添加本地文件的办法,我们最显而易见的就是右键,然后点击新建文件,当然如果嫌弃麻烦的话,我们也可以使用下面的命令进行创建。
命令:
点击查看代码
touch filename
1.* 把文件添加到仓库暂存区中
命令:
点击查看代码
git add filename #将某一个文件添加到本地仓库的暂存区中
git add . #将所有的文件添加到本地仓库中
演示如下:
首先我们在本地仓库中创建了三个文件:first.txt、second.txt、third.txt。
进行相关的操作:
注意:通过git add命令来把文件添加到仓库,实现对指定文件的跟踪执行上面的命令,没有任何显示,这就对了,Unix的哲学是“没有消息就是好消息”,说明添加成功。
1.* 把文件提交到本地仓库中
命令:
点击查看代码
git commit -m "本次修改的简介"
演示如下:
简单解释一下git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
git commit命令执行成功后会告诉你,多少个文件被改动(我们新添加的文件),插入了多少行内容。
为什么Git添加文件需要add,commit两步呢?因为commit可以一次提交很多文件,所以你可以多次add不同的文件。
1.* 查看仓库状态
命令:
点击查看代码
git status
演示:
git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,哪些文件被修改过了,但还没有提交。
Changes to be committed就说明是已暂存状态。
Changes not staged for commit说明还没有放到暂存区,需要运行git add命令。
1.* 查看文件修改内容
当我们文件提交之后,想要查看一下提交后工作区和版本库里面最新版本的区别,可以执行命令git diff:
点击查看代码
Administrator@DESKTOP-LVAMVKF MINGW64 /e/repository/chih-ping.gitlab.io (master)
$ git diff
FETCH_HEAD HEAD master origin/HEAD origin/master
Administrator@DESKTOP-LVAMVKF MINGW64 /e/repository/chih-ping.gitlab.io (master)
$ git diff HEAD source/_posts/Git错误集锦.md
diff --git "a/source/_posts/Git\351\224\231\350\257\257\351\233\206\351\224\246.md" "b/source/_posts/Git\351\224\231\350\257\257\351\233\206\351\224\
index 712808b..6035ae7 100644
--- "a/source/_posts/Git\351\224\231\350\257\257\351\233\206\351\224\246.md"
+++ "b/source/_posts/Git\351\224\231\350\257\257\351\233\206\351\224\246.md"
@@ -44,4 +44,13 @@ git config –list
.......[此处内容省略]
+# 文件名称过长报错
+当拉取项目、执行git add命令或者想要将项目push上去的时候,出现如下报错:
+....
+Filename too long
+....
+原因是:Git在Windows下的文件名长度最大是260,Git在Linux下最大支持4096长度的文件名,可以通过输入以下命令解决:
+....
+....
> Cease to struggle and you cease to live.
备注:提交后,HEAD表示当前的工作区,按照上面的命令,可以查看文件在工作区和版本库里面最新版本的区别,并且将区别罗列出来。比如:前面带+表示添加了一行,带-表示删除了一行。
1.* 比对版本
操作步骤:
1.首先在test.txt上面添加第一行如下:
点击查看代码
first commit!
2.然后添加并且提交文件:
点击查看代码
$ git add test.txt
$ git commit -m "first commit"
[master 60b8748] first commit
...
3.修改,添加第二行,重新添加提交:
点击查看代码
second commit!
将添加的内容放到暂存区:
点击查看代码
$ git add test.txt
$ git commit -m "second commit"
[master cc8f7b1] second commit
...
4.使用版本比对命令发现没有效果显示,然后再把第二行删除掉,没有add,直接进行版本比对,发现有效果比对:
这说明了,版本比对不能比对已经提交的,只有未提交的,并且经过修改的才会比对出版本的不同之处。
因此,git diff顾名思义就是查看difference,显示具体哪些行发生了改变知道了对文件作了什么修改后,再把它提交到仓库就放心多了。
1.* 查看日志
命令:
点击查看代码
git log
在实际工作中,我们脑子里肯定记不住一个几千行的文件每次都改了什么内容,不然不用版本控制系统了。git log命令显示从最近到最远的提交日志,版本号commit id是十六进制唯一标识,避免冲突。
1.* 版本回退
命令:
点击查看代码
git reset --hard commit_id
演示:
1.创建两个文件,然后使用git add命令将两个文件都添加到仓库中,然后将之提交,产生一次commit_id;
2.删除其中的one.txt,提交操作,产生一个commit_id;
3.查看日志,回归到删除前的操作。
进行相关步骤的操作的时候要关注下图的变化:
我们可以发现one.txt首先是没有了,经过git reset --hard commit_id可以发现one.txt又出现了。这就是版本回退,回退到该版本提交后的状态。
注意:HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id。回退前,用git log可以查看提交历史,以便确定要回退到哪个版本。
1.* 查看命令历史
当你已经回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本,找不到新版本的commit id怎么办?要重回回退之前的版本,我们可以用git reflog查看命令历史,包括commit id,以便确定要回退到未来的哪个版本。
命令:
点击查看代码
git reflog
演示如下:
1.* 撤销修改
Git撤销修改,有两种方式:
命令:
点击查看代码
git checkout -- file
git checkout -- test.txt意思就是,把test.txt文件在工作区的修改全部撤销,这里有两种情况:
- 一种是test.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和仓库一模一样的状态
- 一种是test.txt已经添加到暂存区后,又作了修改,现在,撤销修改就会回到添加到暂存区后的状态,总之,就是让这个文件回到最近一次git commit或git add时的状态
命令:
点击查看代码
git reset HEAD file
用命令git reset HEAD file可以把暂存区的修改撤销掉,重新放回工作区。
总结:
- 场景一:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
- 场景二:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作
1.* 删除文件和恢复误删
删除文件:从工作区,也就是我们电脑中的本地工作区文件目录下将test.txt删除了,但是这时候我们发现我们删除错了,那么要怎么办?
演示:删除two.txt文件
恢复误删:
点击查看代码
$ git status
$ git checkout -- two.txt
这时候我们会发现,本地被我们删除的文件又回来了。
总结:通常如果直接在文件管理器中把文件删了git status命令会立刻告诉你哪些文件被删除了。如果你确实要从仓库中删除该文件,那就用命令git rm删掉,并且git commit。另一种情况是本地文件管理器删错了,因为仓库里还有,所以可以很轻松地把误删的文件恢复到最新版本。
git checkout -- file其实是用仓库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
1.* 删除仓库中的文件
命令:
点击查看代码
git rm file