Git前端开发那些事儿

git(二)(版本回滚,.gitignore文件忽略规则)

2021-07-25  本文已影响0人  踏莎行

上一节

历史版本的回滚

每次使用git commit 提交之后,就相当于是创建了一个新的版本,如果你想回到曾经的某一个版本,就要用到回滚了
为了演示,我事先在一个仓库进行了8此提交,我们使用git log命令查看我们的提交历史


Snipaste_2021-07-26_09-22-33.png

简单的查看方式:git log --oneline,顾名思义就是一行输出


Snipaste_2021-07-26_09-25-41.png

版本回滚命令

git reset --hard (提交的hash值,长串和短的hash都可以)
// 如果你想回到哪一次提交的时候,就复制其hash值,执行上述命令
// 如
git reset --hard a9e7a77
git reset --hard f50ab24db0a2d99f8a9fd4659d1459b62f0b890c

// 执行成功之后,git反馈的信息就是
// HEAD is now at (回滚版本的hash值) (那一次提交的commit信息)
HEAD is now at a9e7a77 test 4

执行成功之后,你看你的代码,就会发现已经回到了你想回滚到的那个版本了,但是有一个问题,你再执行git log --oneline


Snipaste_2021-07-26_09-38-23.png

此时只打印出了这个版本之前的版本信息,这个版本之后的信息就不存在了,那我要回到原来 "commit test 78"的版本怎么办?
新的命令,这个命令会记录你关于版本操作的所有信息

git reflog
Snipaste_2021-07-26_09-44-37.png

然后根据hash值,执行git reset --hard (提交的hash值,长串和短的hash都可以)回滚就行了
注意:在做版本回滚的时候,如果当前工作区有程序未提交至暂存区,版本回滚之后,存在于工作区的程序将彻底丢失。如果回滚之前工作区程序不想要了就无需提交暂存,如果要保留,执行git add .,git commit提交防数据丢失

.gitignore忽略文件

这里只列举了常用的,更多规则大家去官网查看吧:https://git-scm.com/docs/gitignore
注意:这里建议大家在初始化(即执行git init之后)版本库之后就将忽略文件创建好,比如说存放依赖的node_modules文件夹,如果你将该文件中的依赖也添加进了暂存区,再创建忽略文件,就没有效果了,不过不用担心,也还是有办法的,,做一个测试

Snipaste_2021-07-26_17-59-53.png
现在在.gitignore文件中添加忽略,修改node_modules文件中的vue.js的内容,查看版本库的状态:git status,结果显示vue.js也被git跟踪了,处于工作区中 Snipaste_2021-07-26_18-03-11.png
下面就出现了删除暂存区文件的命令
git rm -r --cached 文件名
//   git rm --cached node.js
// 删除成功之后git的反馈是:rm 'node.js'

注意:以上删除的是和.git文件同级文件的方法,如果要删除某个文件夹中的文件,比如上述图片中node_modules文件下的vue.js文件就要这个写

git rm --cached node_modules/vue.js

这里我的本意就是提醒大家要注意你要删除的文件和.git文件夹的位置,位置不同删除的路径也不同
下面是删除文件夹的命令,需要在上面的基础上添加一个-r指令

 git rm -r --cached node_modules

fatal: pathspec 'xxxxxx' did not match any files
这个错就可能是你使用的删除文件的命令去删除了文件夹

执行完成git rm命令之后,你想要从暂存区删除的文件就会回到工作区,你阔以执行git status查看版本库的状态
然后重新配置.gitignore文件啦

上一篇下一篇

猜你喜欢

热点阅读