热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

上一节

历史版本的回滚

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

git(二)(版本回滚,.gitignore文件忽略规则)
Snipaste_2021-07-26_09-22-33.png

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

git(二)(版本回滚,.gitignore文件忽略规则)
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

git(二)(版本回滚,.gitignore文件忽略规则)
Snipaste_2021-07-26_09-38-23.png

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

git reflog

git(二)(版本回滚,.gitignore文件忽略规则)
Snipaste_2021-07-26_09-44-37.png

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

.gitignore忽略文件
  • 什么是忽略文件?
    项目中有些不应该存进版本库的文件,和.git同级目录就创建一个叫”.gitignore”的文件

  • 常见的有哪些文件?

    1. 临时文件
    2. 多媒体文件,如视频,音频
    3. 编辑器生成的配置文件,比若说webstorm创建的.idea文件,vscode生成的.vscode文件,等等

    4.npm安装的第三方模块。这个文件有大又繁,严重损耗git的效率。别人拿到我们的项目时,根据项目里面的package.json文件即可自行下载项目所依赖的第三方包

  • 忽略规则

    1. .gitignore文件中的注释是以# 开头的,类似python的注释
    2. 忽略当前文件夹下的某一个文件

    # 忽略当前文件下的test.swp文件 /test.swp

    3.忽略项目中所有的xxx.xxx文件

    # 忽略项目中所有的test.js文件/ test.js

    4.忽略指定某一类后缀的文件

    # 忽略项目中所有后缀名为mp3的文件 *.map

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

git(二)(版本回滚,.gitignore文件忽略规则)
Snipaste_2021-07-26_17-59-53.png

现在在.gitignore文件中添加忽略,修改node_modules文件中的vue.js的内容,查看版本库的状态:git status,结果显示vue.js也被git跟踪了,处于工作区中

git(二)(版本回滚,.gitignore文件忽略规则)
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文件啦


推荐阅读
author-avatar
行玲于諭淑臻
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有