Git管理修改、撤销修改、删除文件

什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。

a.管理修改

对于提交修改,其实和正常提交文件一样的操作,先提交到本地版本库:

$ git add test.txt
$ git commit -m "我新增了文字哦"

然后在从本地版本库提交到github的仓库:

$ git push origin master

PS:这里有个值得注意的地方,如果之前本地没有进行过提交到Git仓库,则执行:

$ git push -u origin master

b.撤销修改

在实际工作中,我们会不断对文件进行修改,然后不断提交修改到本地版本库,也就是不断执行这2个操作:

$ git add readme.txt
$ git commit -m "第一次修改"

如果发现我们有提交错了,可以通过Git版本回退,返回某个历史版本。现在,我们回顾一下test.txt文件一共有几个版本被提交到Git仓库里了:

$ git log
commit a2b692126034f2e77f0e30d5fdf4596e2ebe1ddb
Author: shiyubushiyu <shiyubushiyu.li@163.com>
Date:   Fri Aug 10 16:37:36 2018 +0800

    第三次修改

commit 720d7fcf1e4ba21ff2aea93b9ba29dcba3ce4066
Author: shiyubushiyu<shiyubushiyu.li@163.com>
Date:   Fri Aug 10 16:35:46 2018 +0800

    第二次修改

commit b3228c156a98d211207e3c5af4392c12718d0f8d
Author: shiyubushiyu<shuyubushiyu.li@163.com>
Date:   Fri Aug 10 16:32:19 2018 +0800

    第一次修改

可以看到最近有3次修改,下面来看看怎么返回某个指定的版本,

首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100

现在,我们要把当前版本(第三次修改)回退到上一个版本第二次修改,就可以使用git reset命令:

$ git reset --hard HEAD^
HEAD is now at 720d7fc 第二次修改

然后我们可以去test.txt看看是不是被还原到第二次修改了,答案是肯定的。

那版本回退之后,我后悔了肿么办,我想回到第三次修改肿么办呢?

办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个(第三次修改)commit ida2b69...,于是就可以指定回到未来的某个版本:

$ git reset --hard a2b69
HEAD is now at a2b6921 第三次修改

版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。

然后看看是否改回第三次了呢:

$ cat test.txt
你好,世界!
开始第三次修改

c.删除文件

rm命令删除文件(新文件.txt

$ git add 新文件.txt
$ git commit -m "remo"

然后:

$ rm 新文件.txt
$ git commit -m "删除了文件" [master fb14c3a] 删除了文件 1 file changed, 1 deletion(-) delete mode 100644 "\346\226\260\346\226\207\344\273\266.txt"

然后:

$ git rm 新文件.txt
rm '新文件.txt'
$ git commit -m "remo"
[master 72774be] remo
 1 file changed, 2 deletions(-)
 delete mode 100644 新文件.txt

最后:

$ git push origin master
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (5/5), 399 bytes | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To git@github.com:yy-biboy/learnGitt.git
   0f71c49..72774be  master -> master

这样就彻底删除了 新文件.txt

so,就是这么简单~

 

posted @ 2018-08-10 18:27  南方有梦,远方有止  阅读(364)  评论(0编辑  收藏  举报