• 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 "346226260346226207344273266.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,就是这么简单~

  • 相关阅读:
    Eclipse调试常用技巧
    12个小技巧,让你高效使用Eclipse
    Java程序生成exe可执行文件详细教程(图文说明)
    手机打开PDF文档中文英文支持(乱码问题)解决攻略
    Java修饰符public,private,protected及默认的区别
    Eclipse 各种小图标的含义
    continue break return的区别
    Android开发快速入门(环境配置、Android Studio安装)
    Struts2中的Unable to load configuration错误的分析与解决方法
    认识与入门 Markdown,Markdown教程
  • 原文地址:https://www.cnblogs.com/silent007/p/9456773.html
Copyright © 2020-2023  润新知