Git-3、仓库内的文件操作
来源:互联网 发布:windows聚焦图片在哪 编辑:程序博客网 时间:2024/06/06 01:43
一、修改文件
1、现在我们在之前提交的readme.txt文件上,做一些修改。修改如下:
2、现在运行git status 命令看看结果:
$ git status
●git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
●git diff命令可以帮助我们查看具体修改了什么内容:
3、知道对readme.txt作了什么修改后,接下来再把它提交到仓库。和提交文件的步骤一样:
$ git add readme.txt
$ git commit -m "add line"
现在我们用git status 再来看一下仓库的当前状态:
●可以看到,Git告诉我们没有需要提交的东西,工作目录是干净 。
工作区与缓存区
工作区就是电脑里能看到的目录,工作区中有一个隐藏目录.git,这个不算工作区,而算Git的版本库。
Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。
前面讲了我们把文件往Git版本库里添加的时候,是分两步执行的:第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
二、版本回退和恢复
我们修改完文件后,发现自己还是希望保存修改前的文件,这时候就需要用到版本回退了。
1、我们使用git log命令回顾一下对于readme.txt,我们做了什么修改
$ git log
●git log命令显示从最近到最远的提交日志。如上图,我们可以看到两次提交。如果嫌输出日志太多,还可以加上–pretty=oneline参数,如下:
$ git log --pretty=oneline
●前面的一大串字符串指的是commit id(版本号)。
2、使用git reset命令回退到上一个版本
在Git中,用HEAD表示当前版本,上一个版本就是HEAD^,上上一个版本就是HEAD^^,如果回退的版本比较早,比如往上回退100个版本,可以写成HEAD~100。
使用git reset命令回退一个版本
$ git reset --hard HEAD^
上述命令让我们回退了一个版本,现在我们打卡readme.txt查看一下:
●可以看到,我们确实回退到了上一个版本。
版本回退到了上一个版本,这时,你又后悔了,你还是想要修改后的版本,这时候就要回复你回退之前的版本。
1、Git提供了一个命令git reflog用来记录你的每一次命令:
● 第二行显示add line的commit id是404c207
2、使用git reset命令恢复到某个版本
● 可以看到,我们又恢复到了版本回退前的版本。
三、撤销修改
Git会告诉你,git checkout – file可以丢弃工作区的修改:
$ git checkout -- readme.txt
命令git checkout – readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:
●一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;●一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。●总之,就是让这个文件回到最近一次git commit或git add时的状态。
git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。
- Git-3、仓库内的文件操作
- git仓库的基本操作
- 如何快速的将本地的文件夹内的文件全部传到码云的Git仓库内
- Git 本地仓库与远程仓库管理的常用操作
- Git对远程仓库的操作
- git 的使用——基本的仓库创建,文件提交,上传操作命令,远程仓库关联
- Git操作-远程仓库
- Git本地仓库操作
- Git 本地仓库操作
- Git--远程仓库操作
- Git 仓库常用操作
- git 仓库操作
- Git仓库操作命令
- git仓库的创建与添加文件
- 6.Git基础 对Git仓库的基本操作-3 2016/11/12
- git仓库管理分支误操作 导致文件丢失
- Git学习系列(二)创建本地仓库及文件操作
- Git学习系列(二)创建本地仓库及文件操作
- 学生信息管理(数据库版(雏形))
- 下载google play的安卓应用
- 数据采集第一阶段工作汇报与反思
- http与https的区别
- js中关于排序算法的实现
- Git-3、仓库内的文件操作
- jedis高级使用
- WPF转换器添加
- vue之mock.js模拟接口
- 输入流的数字求和(空格隔开)
- JavaScript(九)DOM
- android实现饼状图
- Caffe源码理解(2)——超级完整版教程:如何自定义一个新的层结构并重新编译Caffe
- Error C2061:语法错误