文章目录
Git常用命令包含很多
-
初始化
init
-
添加和提交
add、commit
-
状态查看
status
-
日志查看
log、reflog
-
回滚操作
reset
-
删除文件之后的恢复
其实就是重置到最近的一次提交 reset
-
对比文件
diff
1. 初始化
初始化仓库,要把本地磁盘中的哪个文件作为git仓库
创建一个新的文件夹

初始化仓库
git init

会在当前目录下生成一个隐藏的文件夹.git

.git中的文件不要删除,不要修改,否则可能会导致仓库不能使用
2. 添加和提交
上文中介绍到,本地分三个区域
- 工作区
- 暂存区
- 本地库
add 是将工作区的代码提交到暂存区
commit 是将暂存区中的文件提交到本地库
git add [要添加的目录或者文件(.代表所有)]
git commit [要提交的目录或者文件] -m "注释"
新建一个文件 Demo1.txt,添加,提交
vim Demo1.txt
git add Demo1.txt
git commit Demo1.txt -m "提交Demo1.txt"

注意
- 不在本地仓库中的文件,git是不进行管理的
- 即使放到本地仓库中的文件,git也不进行管理,必须通过add,commit提交操作才可以将内容提交到本地库
3. 查看文件状态
当前文件处于什么那个区域,是通过status命令区查看的
新建Demo2.txt,查看状态
vim Demo2.txt
git status

添加到暂存区,查看状态
git add Demo2.txt
git status

提交到本地库,查看状态
git commit Demo2.txt -m "提交Demo2.txt"
git status

修改Demo2.txt,重新查看状态
vim Demo2.txt
git status

重新添加,查看状态
git add Demo2.txt
git status

重新提交到本地库,查看状态
git commit Demo2.txt -m "修改Demo2.txt"
git status

4. 查看日志
4.1 git log
使用git log命令,查看日志
git log

HEAD 指向当前所在的版本号和分支
从上到下,为时间从近道远的
git log是带分页效果的
- 上一页 b
- 下一页 空格
- 最后 显示(END)
- 退出 q
4.2 git log --pretty-oneline
使用git log --pretty-oneline可以在一行展示
git log --pretty-oneline

4.3 git log --oneline
使用git log --oneline可以在一行展示,并且显示短的标识号
git log --oneline

4.4 git reflog
使用git reflog 在 git log --oneline基础上多了HEAD@{数字}
这个数字的含义是,指针回到当前版本需要走多少步
git reflog

5. 回滚
5.1 git reset
使用git reset回退或者前进到历史版本
git refloggit reset --hard 4ae6440
git reflog

5.2 hard/mixed/soft
- hard
git reset --hard [索引]
本地库指针移动的同时,重置暂存区,重置工作区,不保留代码
修改一次Demo2.txt,内容改为aabbccc,重新添加,提交
git add Demo2.txt
git commit Demo2.txt -m "修改Demo2.txt"
git reflog

回滚,查看状态,工作区内容和暂存区都没有保留
git reset --hard f810965
git reflog
git status

- mixed
git reset --mixed [索引]
本地库指针移动的同时,重置暂存区,保留工作区,保留代码
修改一次Demo2.txt,内容改为aabbccc,重新添加,提交
git add Demo2.txt
git commit Demo2.txt -m "修改Demo2.txt"
git reflog

回滚,查看状态,可以看到,工作区的代码还在
git reset --mixed f810965
git reflog
git status

- soft
git reset --soft [索引]
本地库指针移动的同时,保留工作区和暂存区
重新添加,提交
git add Demo2.txt
git commit Demo2.txt -m "修改Demo2.txt"
git reflog

回滚,查看状态,可以看到,暂存区,工作区的代码都还在
git reset --soft f810965
git reflog
git status

6. 删除文件之后的恢复
- 删除文件,并且已经同步到本地库了,想恢复
- 删除文件,提交暂存了,但是还没有同步本地库,想恢复
现在的环境

6.1 恢复本地库删除的文件
删除Demo2.txt,添加,提交,查看日志
rm -rf Demo2.txt
git add Demo2.txt # 其实就是将删除操作添加
git commit Demo2.txt -m "删除Demo.txt" # 其实就是将删除操作提交
git reflog

恢复Demo2.txt,其实就是重置到前一次提交
git reset --hard 006db80
git reflog

6.2 重置暂存区的修改
对于没有提交到本地库的更改,可以重置掉。使用reset重置到当前本地库的指针HEAD即可
删除Demo2.txt,添加,查看状态
rm -rf Demo2.txt
git add Demo2.txt # 其实就是将删除操作添加
git status

重置更改,对于为提交本地库的,直接重置到本地库的当前指针即可。当然也可以使用唯一标识号
git reflog
git reset --hard HEAD
git status

7. 文件比对
当文件修改之后,我们要对比文件的变更详情,可以使用diff
- 对比工作区和暂存区的更改
- 对比暂存区和本地库某个版本直接的差异
7.1 对比工作区和暂存区
使用git diff [文件名]
修改文件Demo2.txt的内容,对比
# Demo2.txt
aabbccc
添加内容aaa
# 对比文件
git diff Demo2.txt
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Gv1HV5Z-1629026088476)(images/image-20210812092612120.png)]](https://i-blog.csdnimg.cn/blog_migrate/948e612a795310aaa1491217a068e845.png)
7.2 对比暂存区和本地库
git diff [版本号] 文件名
版本号必须添加,如果是最新的,可以使用HEAD代替
将Demo2.txt提交到暂存区,对比暂存区和本地库最新版本的差异

对比和本地库历史版本的变更 9354de0
git reflog
git diff 9354de0 Demo2.txt

本文详细介绍了Git的基本操作,包括初始化仓库、添加和提交文件、查看文件状态、日志查看、回滚操作以及删除文件后的恢复。重点讲解了不同类型的gitreset选项对工作区、暂存区的影响,并展示了如何通过gitdiff进行文件比对。此外,还阐述了如何利用gitreflog进行版本恢复。
9516

被折叠的 条评论
为什么被折叠?



