小白学Git(2)——Git管理修改

来源:互联网 发布:淘宝猫胡子是假货吗 编辑:程序博客网 时间:2024/06/02 02:31

上一节总结了一下git库下文件的创建与提交(小白学git——学会创建和提交),话不多说,接着来!

git 管理修改

上篇文章我们知道了git库的几个区,回顾一下:

这里写图片描述

就像图中这样,我们将工作区的文件或者修改提交到真正git库之前,我们需要先把文件或者修改添加到暂存区,放在暂存区的文件经过commit可以一次性全部都提交至git库

Talking is cheap,show me the code.

现在我们对index.txt做一点修改:

这里写图片描述

对,没错,你又长了十岁,成为了一个20岁如花似玉的大小伙子。

此时你找了个对象,什么?没有?那就new 一个好了:

touch girlfriend.txt

这里写图片描述

好了,现在你也是有对象的人了。接下来,你和你的对象都要去记录年龄存档上交国家了。当然,你先去试试,看看情况!

git add index.txt;git commit -m'2037'git status

这里写图片描述

好了,你去了之后不但存了档而且顺便提交了,工作人员告诉你,可以让你对象来存档提交了(步骤和你一模一样),你回去给你对象一说,她不高兴了,她本打算你存好档等着她,然后一起去提交,虽然在你看来这并没什么不一样,但是,你不能这么说,你只好想办法把这次提交作废,此时你想到,我可以穿梭时空啊,于是:

git reset --hard HEAD^

真好,你现在可以当自己从没去提交过;

现在,你需要重新修改了,因为你又回到了2027年,不用担心你的对象,她再未来等你快过去呢,于是,你匆忙的成长,到了2032年,你忍不住想去做个记录存个档:

这里写图片描述

如果现在你觉得这样做会造成不好的后果后悔了,你还是有办法补救的,你可以把自己的记录删掉,毕竟还在工作区,都在你的掌控范围内,但是假如你修改了大量的记录,并且时间久远,你不记得修改了哪些,怎么办?

嗯,git 大法好:

当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。(注意其中的-- 两侧都是有空格的)

这里写图片描述

现在,你已经成功撤回了修改,保住了你未来的对象。(图中cat file 命令是用来查看当前文档内容的语法,随时可以查看)。

当然,也不排除另外一种情况,你激动的把文件添加到了暂存区才意识到这样做的后果。

好,我再一次修改到了2032年,并进行add:

git add index.txt

这里写图片描述

幸运的是,你还是可以撤销自己的修改,虽然麻烦一点,但为了对象,值了。

Git同样告诉我们,用命令git reset HEAD file可以把暂存区的修改撤销掉(unstage),重新放回工作区。

我想关于resetHEAD 你应该有个脸熟,第一个是恢复的意思,比如我们版本退回 git reset --hard commitId 和清屏操作reset,而HEAD 我们也说过,是指向当前文件的指针,所以上面的命令意思就很清楚了,就是让当前文件重新指为add之前的文件,就是撤销本次修改的add命令.

这里写图片描述

命令说unstaged changes,意思是撤销 -修改的 -存档操作(方便你们断句),不信,可以看一下现在的状态:

这里写图片描述

可以看到你和你对象的状态是一样的,未存档。当然,你现在本地的记录还没有撤销,因为你只是撤销了add操作,那怎么撤销本地的修改呢?怎么?我还要再说一遍吗?好吧,once again!

这里写图片描述

好了,你又回来了,太刺激了!

终于,你再次来到了2037年,吸取了上次的惨痛经历,你这次只是乖乖的先将自己的记录存档,然后带着对象去存档,然后一并提交。

git add index.txt;git add girlfriend.txt;git commit -m'2037年,与对象一起';git status

这里写图片描述

终于!!你和你的对象幸福的一起提交的档案,从此过上了幸福快乐的生活

原创粉丝点击