`

Git学习系列(三)版本回退和管理文件的修改及删除操作

 
阅读更多

版本回退

前面我们成功的提交了一次mygit.txt,下面咱对它进行修改,内容如下:

 

Hello Git
Git is so easy.

 

然后用git status来跟踪该文件的状态:

可以看到hellogit.txt已经被修改过了,到底这次修改的内容与上次的内容有什么不同的,咱们可以使用git diff查看:

当然你也可以查看上次提交的信息,使用git log:

通过前面一章我们知道,该文件还处于工作区,因此我们又可以使用add、commit操作了:

这里笔者偷了个懒,直接用-m表示提交的信息,当然在学习过程中咱可以这样,但实际工作中一般不这么写。

好了,提交完后咱再用git status来跟踪一下(建议多使用git status)状态:

这里依然是:Git告诉咱们当前没有需要提交的修改,而且工作目录是干净的。

下面再学一个命令:git reflog,它主要用来记录你的每一次命令和commit id,这个命令非常有效,也建议大家常用。


可以看到咱提交的id号和提交的message被显示出来了。

加入你现在不想修改了,想回到原来那个版本,该怎么办呢?别急,这一点Git早就帮我们想好了,使用git reset --hard HEAD^

注意:这里HEAD上面^表示回到上一个版本,如果想回到前面第五个版本呢?我们可以用git reset --hard HEAD~5,当然因为我们这里只修改了1次,所以我们最多只能回到前面一个版本。打开hellogit.txt看看,是内容不是Hello Git呢?得意当然如果你又想修改回去,那么咱们还有办法,用git reset --hard commit-id:

注意:这里的e75e865指的是commit id,上面已经说了,这里就不再赘述。

撤销修改:

下面我们再次对helliogit.txt进行修改,内容如下:

 

Hello Git
Git is so easy.
Easily learn the Git.

然后我们用git status跟踪状态:

 

这里Git会告诉你,git checkout -- file可以丢弃工作区的修改:

命令git checkout -- readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,然后在查看状态:

工作目录有变回”clean“了,查看hellogit.txt内容 cat hellogit.txt

内容又改回来了,这样就完成了一次简单的修改撤销。如果你把文件内容修改为原来添加时的:

 

Hello Git
Git is so easy.
Easily learn the Git.

git add hellogit.txt到了暂存区,咱们还有办法,使用git reset HEAD hellogit.txt来返回到工作区状态:

 

竟然已经回到了工作区,那么咱们就可以向之前那样,使用git checkout -- hellogit.txt了:

好了,一切又回到了,原来的状态。如果你还从暂存区提交到了版本库,还记得上面的版本回退吗?可以回到上一个版本就OK了,不过如果你还将本地的修改推送到远程版本库(后面会讲),那就没有后悔药吃了。

 

删除文件

前面已经说了,在Git中,删除也算一个修改操作。下面咱们先添加一个新文件1.txt到Git并且提交:

这是你如果执行rm 1.txt把1.txt文件删了,那么这个时候,Git知道你删了文件,工作区和版本库就不一致了,我们再用git status跟踪一下:

这是你有两个选择,一是确实要从版本库中删除,使用git rm 1.txt并commit一下:

注意:你删除之后,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

另一种情况,你觉得你删除了想修改过来,因为版本库中还存在,所以可以很轻松地把误删的文件恢复到原来版本。

可以看到,1.txt有回到工作区了。


总结

今天内容比较多,可能需要点时间慢慢消化,如果有哪里写的不对多需要改进或哪里的地方可以留言,我现在的工作很闲。吐舌头明天开始讲远程仓库。

分享到:
评论

相关推荐

    Java进阶版本管理工具Git全套视频教程

    6.8 回退至历史版本 6.9 文件删除 6.9.1本地删除与恢复 6.9.2从版本库删除 6.9.3从版本库删除,但是不删除本地 6.10 忽略提交 7. Git 的基本使用02-TortoiseGit 操作本地仓库(分支) 7.1 分支的概念 7.2 为何要使用...

    Git常用操作

    git常用操作 一、仓库创建 2 1. 本地新建一个git仓库 2 2. 本地克隆一个远程仓库 2 3. 同步远程仓库代码到本地 2 4. 同步本地代码到远程仓库 3 二、基本配置 3 2.1. 给Git着色 3 2.2. 设置文本编译器 3 2.3. 设置...

    git常用操作命令 pdf

    开发常用git指令: git init # 初始化本地...2. 文件在添加到缓存区后修改,则回退到原缓存区状态。也即是将readme.txt撤回到最近一次git add或git commit状态(注:--表示在当前分支,如果没有,则切换到另一个分支)

    Git介绍与使用-培训专用课程PPT

    初始化仓库、克隆项目、添加文件到暂存区、查看仓库当前状态、比较文件不同、提交修改、回退版本(包含清理分支和常用组合操作命令)、删除工作区文件、查看提交记录、远程操作、拉取与合并代码、管理分支(分支操作...

    Git基础用法

    5、 撤销修改及删除文件 9 6、 远程仓库 12 1. 创建git远程仓库(创建git远程服务器) 12 2. 添加远程库 14 3. 从远程库克隆 15 4、 直接关联远程库 16 7、 分支管理 17 1、 创建与合并分支 17 2、 解决冲突 21 3、 ...

    Git开发操作流程v1.0 Git使用笔记 git常用命令 git常见问题

    Git开发操作流程v1.0 Git使用笔记 目录: Git开发操作流程 2 1. 新建分支 2 # 1-查看当前git状态 2 # 2-若不在主分支master,则切换至主分支 2 # 3-更新主干代码,确保本地仓库与远程...查看和回退记录 10 3.查看修改

    Git操作详细介绍

    总结常用的Git操作及命令 主要包括: 文件的修改、回退、删除等 远程仓库的相关操作 分支管理 标签管理

    git基本操作

    比较贴近应用的git操作介绍 git基础操作 ...四、代码撤消与回退 6 五、提交记录查询 7 六、分支管理 7 1. 克隆代码 7 2. 创建本地工作分支 7 3. 删除分支 7 4. 切换分支 7 5. 合并分支 8 七、应用标签 8

    Git命令工作中使用场景总结

    Git命令 -Git配置 -工作流程 -搭建 -文件操作 -忽略文件 -Git分支 -版本回退 -撤销修改 -删除文件 -合并解决冲突 -多人协作 -Rebase

    计算机专业面试可能会遇到的问题

    git reset --hard commitID 版本回退 git reflog 可以看到删除掉的记录(用来查找丢掉的指令) touch .gitignore 这文件可以不让git管理 分支: git branch 分支名 创建分支 git branch 查看本地分支 git checkout ...

    git常用命令总结-详细版

    内容列表 文件的修改、回退、删除等 远程仓库的相关操作 分支管理 标签管理

    本地使用SVN进行源代码管理

    以时间命名,但是久而久之文件就大了起来,版本不稳定又不好把以前的删除,所以就产生了一大批的文件,想回退的时候时间久了又不知道每个版本具体做了哪些修改,由于公司禁止私自搭建SVN服务器,所以我就去找其它的...

    Git教程1

    2.创建版本库 3.时光机穿梭 4.版本回退 5.工作区和暂存区 6.管理修改 7.撤销修改 8.删除文件 9.远程仓库 2.创建版本库

    TortoiseGit-2.4.0.2-64bit.msi 中英文版(附使用教程)

    相较于Git原生的命令行管理界面tortoisegit实现了管理界面的图形化和功能化,使得远程分布式管理系统git操作变得轻松简约,在不需要复杂命令行输入的基础上便可以轻松地从远程服务器上同步操作代码,建立分支、合并...

    Tortoisegit 64位安装包

    相较于Git原生的命令行管理界面tortoisegit实现了管理界面的图形化和功能化,使得远程分布式管理系统git操作变得轻松简约,在不需要复杂命令行输入的基础上便可以轻松地从远程服务器上同步操作代码,建立分支、合并...

    GP-03-test:一个测试

    删除,修改)git commit -m'提交注释'把暂存区的内容提交到本地仓库本地仓库涉及到的三个部分工作区(实际持有文件)暂存区本地仓库git日志查看操作日志git reflog查看操作日志(简单版)git diff文件名查看文件变更...

    test:学习Dart和扑

    $git reset 回退(--hard HEAD^)^表示上一个版本,HEAD表示当前版本,HEAD~100(100个版本前) $cat 查看文件内容 $git checkout -- 撤销工作区修改,文件回到最近一次git commit或git add时的状态,用版本库/暂存区里的...

Global site tag (gtag.js) - Google Analytics