文章目录
如果文章对您有用,请关注点赞加收藏,博主会持续更新相关的专栏笔记🫡
Git 的安装
下载地址:官网
Git 的安装,网络上一找一大堆,就是一直点击下一步即可。
Git 的配置
因为 Git 是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和 Email 地址。git config 命令的 --global 参数,用了这个参数,表示你这台机器上所有的 Git 仓库都会使用这个配置。
配置使用者信息:
配置用户名:
git config --global user.name xxx
配置邮箱:
git config --global user.email xxx@qq.com
local、global、system 三种级别:
- local 当前项目有效【工作目录 /.git/config】
- global 当前用户有效【用户目录 /.gitconfig】
- system 所有用户有效【Git 目录 /etc/gitconfig】
Git 相关操作
创建版本库
上面我们已经介绍了相关的 Git 的安装,以及一些简单的配置,现在我们来介绍一下如何创建版本库:
命令:
git init
该命令将创建一个名为 .git 的子目录,这个子目录含有你初始化的 Git 仓库中所有的必须文件,这些文件是 Git 仓库的骨干。但是在这个时候,我们仅仅是做了一个初始化的操作,你的项目里的文件还没有被跟踪。
注意:使用创建版本库的命令 git init 的时候,首先要保证 Git 的客户端已经在本地仓库的目录下了。
如果 Git 客户端不在本地仓库的目录下,那么可以使用如下图的命令到达本地仓库目录下:
cd g:/gitRepository
有两种取得 Git 项目版本库的方法:
第一种是在现有项目或目录下导入所有文件到 Git 中;
第二种是从一个服务器克隆一个现有的 Git 仓库。
我们先说一下在本地创建 Git 项目版本库,什么是版本库呢?
前面介绍过,版本库又名仓库,英文名 Repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除,Git 都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。默认处于 master 分支,head 指针指向 master 分支。
新建文件
注意:把文件添加到仓库的前提是,在本地仓库中需要有文件,如果没有文件的话是没有办法添加的。
在本地仓库添加本地文件的办法,我们最显而易见的就是右键,然后点击新建文件,当然如果嫌弃麻烦的话,我们也可以使用下面的命令进行创建。
命令:
touch filename
把文件添加到仓库暂存区中
命令:
git add filename  # 将某一个文件添加到本地仓库的暂存区中
git add .  # 将所有的文件添加到本地仓库中
注意:通过 git add 命令来把文件添加到仓库,实现对指定文件的跟踪执行上面的命令,没有任何显示,这就对了,Unix 的哲学是“没有消息就是好消息”,说明添加成功。
把文件提交到本地仓库中
命令:
git commit -m "本次修改的简介"
简单解释一下 git commit 命令,-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
git commit 命令执行成功后会告诉你,多少个文件被改动【我们新添加的文件】,插入了多少行内容。
为什么 Git 添加文件需要 add,commit 两步呢?因为 commit 可以一次提交很多文件,所以你可以多次 add 不同的文件。
查看仓库状态
命令:
git status
git status 命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,哪些文件被修改过了,但还没有提交。
Changes to be committed 就说明是已暂存状态。
Changes not staged for commit 说明还没有放到暂存区,需要运行 git add 命令。
查看文件修改内容
当我们文件提交之后,想要查看一下提交后工作区和版本库里面最新版本的区别,可以执行命令 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、首先在 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,显示具体哪些行发生了改变知道了对文件作了什么修改后,再把它提交到仓库就放心多了。
查看日志
命令:
git log
在实际工作中,我们脑子里肯定记不住一个几千行的文件每次都改了什么内容,不然不用版本控制系统了。git log 命令显示从最近到最远的提交日志,版本号 commit id 是十六进制唯一标识,避免冲突。
版本回退
命令:
git reset --hard commit_id
演示:
- 创建两个文件,然后使用 git add 命令将两个文件都添加到仓库中,然后将之提交,产生一次 commit_id
- 删除其中的 one.txt,提交操作,产生一个 commit_id
- 查看日志,回归到删除前的操作
我们可以发现 one.txt 首先是没有了,经过 git reset --hard commit_id 可以发现 one.txt 又出现了。这就是版本回退,回退到该版本提交后的状态。
注意:HDEA 指向的版本就是当前版本,因此,Git 允许我们在版本的历史之间穿梭,使用命令 git reset --hard commit_id。回退前,用 git log 可以查看提交历史,以便确定要回退到哪个版本。
查看命令历史
当你已经回退到了某个版本,关掉了电脑,第二天早上就后悔了,想恢复到新版本,找不到新版本的 commit id 怎么办?要重回回退之前的版本,我们可以用 git reflog 查看命令历史,包括 commit id,以便确定要回退到未来的哪个版本。
命令:
git reflog
撤销修改
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 操作
删除文件和恢复误删
删除文件:从工作区,也就是我们电脑中的本地工作区文件目录下将 test.txt 删除了,但是这时候我们发现我们删除错了,那么要怎么办?
演示:删除 two.txt 文件
恢复误删:
$ git status
$ git checkout -- two.txt
这时候我们会发现,本地被我们删除的文件又回来了。
总结:通常如果直接在文件管理器中把文件删了 git status 命令会立刻告诉你哪些文件被删除了。如果你确实要从仓库中删除该文件,那就用命令 git rm 删掉,并且 git commit。另一种情况是本地文件管理器删错了,因为仓库里还有,所以可以很轻松地把误删的文件恢复到最新版本。
git checkout – file 其实是用仓库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
删除仓库中的文件
命令:
git rm file
 
                   
                   
                   
                   
                             
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   5598
					5598
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            