保姆级别入门"/>
Git——保姆级别入门
📢📢📢📣📣📣
哈喽!大家好,我是【一心同学】,一位上进心十足的【Java领域博主】!😜😜😜
✨【一心同学】的写作风格:喜欢用【通俗易懂】的文笔去讲解每一个知识点,而不喜欢用【高大上】的官方陈述。
✨【一心同学】博客的领域是【面向后端技术】的学习,未来会持续更新更多的【后端技术】以及【学习心得】。
✨如果有对【后端技术】感兴趣的【小可爱】,欢迎关注【一心同学】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
目录
一、安装Git
二、设置用户标识
🌴全局设置
🌴查看本地目录结构
三、版本库
🌵介绍
🌵版本控制系统能做什么?
🌵版本控制系统不能做什么?
四、版本库的创建
🔥步骤一
🔥步骤二
五、文件添加到版本库
🌵准备工作
🔥步骤一
🔥步骤二
🌴分析
六、查看修改的内容
七、版本回退
7.1 准备工作
7.2 版本回退介绍
7.3 查看版本历史记录
7.4 回退操作
7.4.1 理论准备
7.4.2 回退
7.4.3 回退原理讲解
7.4.4 回退小结
八、命令总结
小结
一、安装Git
官网链接:Git - Downloads
选择相应的版本然后根据默认选项,无脑下一步安装即可,非常简单。
下载完成之后,在开始菜单栏里面查找“Git",然后点击 ”Git Bash",如果出现一个命令窗口就说明我们安装成功了!
二、设置用户标识
🌴全局设置
当我们安装完成Git后,首先要做的就是设置用户名称和e-mail地址,因为Git是分布式版本控制系统,所以,每个机器都必须自报家门,而当我们每次使用Git进行提交时,都会使用到该信息。
#设置用户名
$ git config --global user.name "yixin"#设置邮箱地址
$ git config --global user.email 12xxxxx615@qq
设置完成之后,我们可以输入 git config --global --list 来查看我们的标识是否能够成功录入。
注意:
git config
命令的--global
参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
🌴查看本地目录结构
通过上一步的设置后,我们去查找本地的目录:
C:\Users\Administrator\ .gitconfig ——适用于当前登录用户的配置 --global 全局
这个文件就是我们通过全局命令设置后会响应到这里。
我打开看一下,可以发现我们刚刚设置的信息确实就是在这里!
三、版本库
🌵介绍
版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。
🌵版本控制系统能做什么?
版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“World”,在第8行删了一个单词“Hello”。
🌵版本控制系统不能做什么?
对于图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
四、版本库的创建
版本库的创建非常简单,根据以下两个步骤就可以完成版本库的创建。
🔥步骤一
选择一个合适的地方,右击鼠标,点击Git Bash Here,接着命令行创建一个空目录。
输入命令:
$ mkdir mygit
$ cd mygit
$ pwd
pwd:显示当前目录所在的位置。
🔥步骤二
使用
git init
命令把这个目录变成Git可以管理的仓库。
$ git init
Initialized empty Git repository in C:/Users/Administrator/Desktop/MyBlog/GitStudy/mygit/.git/
现在Git就把仓库建好了,而且告诉你是一个空的仓库(empty Git repository)。
我们去看一下该文件夹,发现会出现一个.git的目录,这个目录是Git来跟踪管理版本库的,千万不要手动修改这个目录里面的文件,不然里面乱了,就把Git仓库给破坏了。
如果你没有看到
.git
目录,那是因为这个目录默认是隐藏的,用ls -ah
命令就可以看见。
五、
文件添加到版本库
注意:所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外,但不能跟踪二进制文件的变化,如图片,视频。
🌵准备工作
编写一个readhere.txt文件放在我们刚刚创建的目录mygit下。
内容为:
Git is a version control system.
yixin.
🔥步骤一
用命令git add
告诉Git,把文件添加到仓库:
$ git add readhere.txt
🔥步骤二
用命令git commit
告诉Git,把文件提交到仓库:
$ git commit -m "this is my file"
[master f1a9385] this is my file1 file changed, 2 insertions(+)create mode 100644 readhere.txt
🌴分析
🚀git commit
命令分析:
-m:
后面输入的是本次提交的说明,可以输入任意内容,一般是有意义的,这样你就能从历史记录里方便地找到改动记录。
🚀执行成功后的提示:
1 file changed:1个文件被改动(我们新添加的readme.txt文件);
2 insertions:插入了两行内容(readme.txt有两行内容)。
我们可以多次
add
不同的文件,然后使用commit
一次提交很多文件
六、查看修改的内容
我们往readhere.txt这个文件再添加一行数据(hello),进行修改。
Git is a version control system.
yixin.
hello.
使用git status命令可以让我们时刻掌握仓库当前的状态,我们来进行查看目前文件的状态。
现在提示告诉我们 readhere.txt文件已被修改,但是修改未被提交。
那么现在我们想要查看一下我们到底修改了什么内容,则可以使用git diff命令进行查看,我们在命令行输入以下命令:
git diff readhere.txt
执行结果:
从中可以看出,我们readhere.txt文件从两行数据变为了三行数据,添加了一行hello.的内容。
现在我们知道了对readhere.txt文件做了什么修改后,确认后就可以放心的提交到仓库了,步骤还是跟前面一样(先git add 再git commit - m)
七、版本回退
7.1 准备工作
我们目前已经是有两个版本了
版本一:this is a file
版本二:add hello
现在我们再次修改readhere.txt文件,构成三个版本。
我们在第一行后面添加and Git is free software。
文件现状:
Git is a version control system and Git is free software.
yixin.
hello.
接着我们进行提交
$ git add readhere.txt
$ git commit -m "git is free software"
[master 81c73b6] git is free software1 file changed, 1 insertion(+), 1 deletion(-)
7.2 版本回退介绍
🚀我们通过这样不断对文件进行修改,然后不断提交修改到版本库里,就好比我们在玩关卡游戏时,我们每通过一关就将其进行存盘,当我们那关通不过,失败了,就回退到最近的存盘进行复活。
🚀Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,这个快照在Git中被称为commit
。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit
恢复,然后继续工作,而不是把几个月的工作成果全部丢失。
7.3 查看版本历史记录
现在进行回想一下我们现在拥有的版本数:
版本一:this is a file
Git is a version control system.
yixin.
版本二:add hello
Git is a version control system.
yixin.
hello.
版本三:git is free software
Git is a version control system and Git is free software.
yixin.
hello.
当我们每提交一个新版本,实际上Git就会把它们自动串成一条时间线;我们可以使用git log
命令查看我们的版本历史记录。
git log命令:显示从最近到最远的提交日志。
我们可以看到3次提交,最近的一次是git is free software,上一次是add hello,最早的一次是this is a file。
如果我们觉得命令框输出的信息太多了,那么我们可以在git log 命令的后面添加--pretty=oneline
参数。
$ git log --pretty=oneline
执行结果:
输出分析:
可以看到我们版本描述前面都有一大推的字串(81c73....),这些便是commit id,为什么不是有序1,2,3呢?因为Git是分布式的版本控制系统,如果多人在同一个版本库里工作,那么大家都用1,2,3……作为版本号,那肯定就冲突了。
7.4 回退操作
7.4.1 理论准备
首先,Git必须知道当前版本是哪个版本,在Git中,用
HEAD
表示当前版本,也就是最新的提交(81c73....)上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
7.4.2 回退
我们现在开始准备将readhere.txt从当前版本git is free software回退到上一个版本,也就是add hello这个版本。
使用git reset
命令:
$ git reset --hard HEAD^
HEAD is now at 0fb4610 add hello
现在已经回退一个版本到达add hello这个版本了,我们去查看一下:
$ cat readhere.txt
Git is a version control system.
yixin.
hello.
发现,成功将版本回退了!
我们再继续用git log
再看看现在版本库的状态:
细心的小伙伴们,不知道有没有发现一件事,我们最新的那个版本git is free software已经看不到了!
🚀回退方式一
只要我们现在这个命令窗口还没关闭,我们可以顺着往上进行查找,找到那个git is free software的commit id
是 81c73...,
于是就可以指定回到未来的某个版本:
$ git reset --hard 81c73
HEAD is now at 81c73b6 git is free software
提示:版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
接着我们再去查看一下readhere.txt的内容:
$ cat readhere.txt
Git is a version control system and Git is free software.
yixin.
hello.
可以发现,又跳回我们最新的版本了!
🚀回退方式二
如果我们将窗口关闭了,然后我们最新版本的commit id也忘记了,这种情况该怎么办呢?
遇到这种情况,你可以放心,因为在Git里面,是有后悔药可以吃的,Git里面提供了一个命令git reflog
用来记录你的每一次命令:
从输出可知,git is free software的commit id是81c73
,现在这种情况我们也可以重新回到最新的版本了。
7.4.3 回退原理讲解
Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD
指针,当你回退版本的时候,Git仅仅是把HEAD从指向git is free software:
改为指向add hello:
Head指向后就顺便把工作区的文件更新了。所以你让
HEAD
指向哪个版本号,你就把当前版本定位在哪。
7.4.4 回退小结
HEAD
指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
。穿梭前,用
git log
可以查看提交历史,以便确定要回退到哪个版本。要重返未来,用
git reflog
查看命令历史,以便确定要回到未来的哪个版本。
八、命令总结
我们重新梳理一下本篇博客所用到的所有命令。
#设置用户名
$ git config --global user.name "yixin"
#设置邮箱地址
$ git config --global user.email 12xxxxx615@qq
#查看全局配置信息
$ git config --global --list
#建立Git可管理的仓库
$ git init
#把文件添加到仓库
$ git add 文件名
#把文件提交到仓库
$ git commit -m "message"
#查看仓库当前的状态
$ git status
#查看修改的内容
$ git diff 文件名
#查看版本历史记录
$ git log
#查看版本历史记录(简约版)
$ git log --pretty=oneline
#回退版本,如果是回退到前两个版本,则是HEAD^^
$ git reset --hard HEAD^
#查看每一次命令记录
$ git reflog
小结
上面就是【一心同学】在网上查阅了不少【技术文章】然后根据【自己思路】整理的【Git入门操作】,相信现在大家已经能够逐渐感受到了【Git】的好用了,但现在距离掌握Git的详细使用还【远远不够】,【一心同学】将会在接下来的博客里继续讲解【Git的使用】。
如果这篇【文章】有帮助到你,希望可以给【一心同学】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点,如果有对【后端技术】感兴趣的小可爱,也欢迎关注❤️❤️❤️ 【一心同学】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!
更多推荐
Git——保姆级别入门
发布评论