Git的使用(易懂+巨无比详细+新手必看)
温馨提示:这篇文章已超过389天没有更新,请注意相关的内容是否还可用!
Git是用来干什么的呢?
是用来管理代码文件的,具体是啥自行百度就行,其实你点进来你多少会对他有点了解,知道他是干嘛的~
提示:照着本文,敲一下指令就能掌握,底层原理了解即可,主要是会用!
01 | 下载软件
软件官网
Git官网进口
下载好了可以输入
git --version
这里可以看到git的版本,这就说明git安装成功了!
02 | Git的命令–开发需要
首先需要熟悉linux常用基本命令!
而常用的Git也就无非这么几个
只要把linux命令,配合git命令(红色的记住),就能实现大部分开发需求了!
git init:初始化
git status:查看状态
git add :追踪文件,添加到暂存区
git commit -m '备注' :提交文件到本地库
git reflog / git log:查看日志
git reset --hard 版本号:版本切换
git rm --cached :丢弃工作目录中对文件的修改,将其还原为最近一次提交的状态。
git restore :用于取消暂存区中对文件的修改,将其还原为最近一次提交的状态,并保留工作目录中的修改
git restore --staged :用于停止跟踪某个文件,将其从暂存区中移除,但保留在工作目录中。
03 | 实操
3.1 | 设置用户签名和密码
这里的用户签名和其他地方任何的账号密码都没有关系,这个只是作为你提交代码的一个标识,你在本机上提交代码,提交代码的人就是你设置的签名Layne,这只是一个标识。
3.2 | 初始化本地库
在桌面新建一个文件git-demo,在这个文件里面又新建一个文件git_space
接着在这个路径下,启动git bash窗口,输入git init命令
可以看到,该目录下创建了一个.git的文件,这个文件放的东西就是用来进行版本控制的。
在window里可以看到如下的文件结构,把隐藏的文件打钩
3.3 | 查看本地库状态
输入命令git status
下面来分析一下这三行输出的文字所代表的意思
现在在git_space下执行下面代码
可以看到创建了一个hello.txt的文件,里面编写了一些内容。
这时候我们再来看git status
1、前两行文本没有变化,
2、第三行有了改变,意思是,存在没有追踪的文件,下面括号也说了,(使用git add 这个这个命令去添加它,然后准备提交),
3、红色的hello.txt说明该文件只存在而已,但是没有被追踪。
4、最后一行说了,没有可以添加去提交的东西,但是呢,存在没有追踪的文件(使用git add命令去追踪它)
3.4 | 添加文件到暂存区
那么我们就使用git add 这个命令,添加到暂存区吧~,也就是追踪这个文件。
再使用git status命名查看一下状态。
再来分析一下输出的文本
1、没有变化,在master分支上
2、没有提交过东西
3、提交这个改变,可以看到这个hello.txt文件变成了绿色,说明我们已经把这个文件添加到暂存区了,已经被追踪了。括号里面写(使用git rm --cached 命令去取消上一步操作
那我们就按照他的提示操作一下吧git rm --cached hello.txt
再查看一下状态
- 可以看到,hello.txt回到了没有被追踪的状态,可以理解为把这个hello.txt文件从暂存区拿出来
- 这个告诉我们,暂存区的数据既然可以被添加,也可以被删除(只是移出暂存区)
- 现在我们重新把hello.txt文件添加回去
3.5 | 提交本地库(赠:查看日志)
这个的意义就是,将暂存区的文件添加到本地库,形成一个历史版本
基本语法:git commit -m “备注”
再来进行查看一下状态
- 发现这次输出只有两行文本
1、在master分支,这个没变
2、没有可以去提交的东西,工作区已经清空了
少了No commits yet,这句话说的是“还没有提交过东西”,而现在我们已经提交东西了,所以他就不显示了。
这里我们可以使用一个查看版本提交的命名git reflog
解释一下:
- 0759d50 :表示提交版本号,由Git自动生成,通常用哈希值表示
- (HEAD -> master) : 表示HEAD这个指针,指向master,也就是我们现在在master这个分支上
- HEAD@{0} : 表示HEAD的一个偏移量,而这个偏移量是{0},在这个位置进行的提交
- commit (initial): first commit : 你之前提交的时候,输入的备注信息
可以再使用git log命令,这个命令是查看完整版的日志的
解释一下:
- commit 操作的一个版本号(这个是一个完整的,而git reflog只是截取了一部分的哈希值),HEAD指针指着master分支
- 作者:用户名 邮箱 (也就是一开始设置的东西)
- 提交的日期: 巴拉巴拉
- 提交的备注信息
3.6 | 文件的修改
在hello.txt文件中插入修改一下,添加了‘123456’
再次查看本地库的状态
解释一下:
- 在master分支
- 意思是‘更改没有提交到暂存区’,也就是没有被追踪
(使用git add 命令去更新将要被提交的内容)
(使用git restore 命令去放弃更改在工作目录中)
- 更改的文件:hello.txt,可以看到这个文件变成了红色,说明没有添加到暂存区里
- 没有添加要提交的更改(使用git add或者git commit -a)
使用git restore 命令
查看状态发现,他提示说,没有东西可以提交,工作区是空的,也就是没有执行过任何操作
再看文件内容,这个‘123456’也给我撤回去
好了~,我们把文件还原吧,把‘123456’重新输入进去,回到执行git restore前的状态吧,再进行下面的操作
使用git add命令添加到暂存区,再看看状态
意思是,在master分支上,将要提交的更改:
(使用git restore --staged 命令,把文件移出暂存区)
修改了文件:hello.txt
输入一下命令git restore --staged
不知道你有没有发现,回到了之前的使用git add的时候
对文件进行commit一下吧
解释一下:
- 【master分支, 版本号(哈希值截取)】,备注信息
- 一个文件修改了,一行添加,一行删除
(Git里面是对行进行处理的,所以你的修改操作,它表示为删除一行,然后新增一行)
=========================
- 再次查看状态,这个时候已经没有东西提交啦,而且工作区也干净了
执行一下git reflog和git log查看日志信息
解析一下:
- 可以看到第一行的备注信息为上一次提交,也就是第二次提交,HEAD的偏移量为0,而上一次的偏移量为1了,同时也可以看出,这个HEAD指针指向master分支的同时,指向第二个提交版本
3.7 | 历史版本和版本穿梭
先再进行一个文件修改,然后提交
此时有三个被提交的版本了
文件改了之后,我想要回到任何一个提交的版本怎么办呢?
可以使用git reset --hard
解释一下:
- 可以看到第一行的备注信息为上一次提交,也就是第二次提交,HEAD的偏移量为0,而上一次的偏移量为1了,同时也可以看出,这个HEAD指针指向master分支的同时,指向第二个提交版本
- 发现这次输出只有两行文本
































