本文已参与“新人创作礼”活动,一起开启掘金创作之路。
总结一下在linux中使用git修改了文件后,进行版本的回溯。这里在centOS虚拟机中安装好git进行测试。
一、首先先对文件进行修改
这里修改的文件是已经上传到git仓库中的文件,在git仓库中对这个文件修改
源文件如下:
修改以后如下:
二、查看修改的内容,进行确认
我们在第一步修改了文件后,按 ESC 后输入 :wq 保存并退出,我们进入仓库的路径可以使用 diff 来看文件修改的内容。
eg: git diff hello.txt
这里给大家简单讲讲这些内容的意思, diff --git a/hello.txt b/hello.txt 中 a/hello.txt 就是之前的版本,b/hello.txt就是修改后的版本,下面的 --- a/hello.txt 很容易理解就是之前的版本, +++ b/hello.txt 也就是修改后的版本,这里用 ---与+++来区分,我们具体看下面,一看可能有点乱,仔细读读就可以发现语句前有 - 号的就是修改前的版本,有 + 号的就是修改后的版本,比如之前版本的 Hello git! 和后面修改后的 Hello git and you! 所以使用 diff 指令可以很明显的看出我们之前的修改内容。
三、将修改后的文件添加到git仓库中
这里先使用 git add hello.txt,然后再输入 git commit -m "add " 将hello.txt文件添加到仓库中
四、查看git仓库中的版本历史记录
因为当我们修改文件修改很多时候,我们是记不住修改了什么内容,所以git提供了 git log 指令查看最近的历史记录。
上面的我们可以发现输出信息太多,看得比较复杂的,可以试试加上 --pretty=oneline 参数:
五、文件写错时,将版本进行回退
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交的8940372e.....(这里的ID就是上图 log 时候每一行的前面的一串字符串),上一个版本就是HEAD^(510238c...),上上一个版本就是HEAD^^(a5df7c1...),当然往上100个版本写100个^
比较容易数不过来,所以写为HEAD^100。
现在,我们要把当前版本回退到上一个版本 second,就可以使用 git reset --hard HEAD^ 命令
我们输出看看是否退回到了之前的版本:
我们可以继续使用 git log 看看版本库的状态:
我们发现之前那个版本就直接不见了,当然git也给了回去原先版本的方法,不过要输入的不再像之前一样的 HEAD ,而是需要后面加上 版本的ID号,如下:
我们可以看到又回到了之前的版本回溯之前的版本,这就可以很人性化的管理版本,适合开发人员一起进行合作开发:
可能会问要是我之前没有 log 就直接版本回溯了,不是就看不到我之前的那个版本的ID吗?没事,可以输入 git reflog 进行看所有版本的ID和信息:
以上就是一些基本的版本回溯的指令与过程,刚接触git的可以了解了解。