初识Git管理修改功能

接着上次Git版本回滚的内容接着学习,我们已经知道,修改文件到提交文件要经历下面几个步骤:工作区修改文件–>add到暂存区–>commit提交。也就是说,修改完文件之后,必须add文件,才能提交。

  1. 工作区,暂存区示意图:
    git暂存区
  2. 管理修改示例
    (1)对helloworld.txt进行一次修改:

    (2)将helloworld.txt添加到暂存区:

    (3)对helloworld.txt进行第二次修改:

    (4)commit提交:

    (5)git status查看状态:

    发现,第二次的修改并没有提交上去,提示我们add提交或checkout丢弃工作区的修改。
    (6)git diff HEAD — helloworld.txt查看工作区与版本库的区别:

    可见,第二次的修改确实只停留在了工作区,必须add到暂存区才能commit成功。
    (7)再次add helloworld.txt—>git commit -m “helloworld 2nd modification”—>git status:
    # On branch master
    nothing to commit (working directory clean)

    小结:
    (1)commit提交的是暂存区的修改,而不是工作区的修改。
    (2)git diff HEAD –<file>:查看当前版本文件在工作区与版本库的区别。

  3.  撤销修改 

    (1)文件修改后只停留在工作区:git checkout — <file>

    可见,工作区内的helloworld.txt已经撤销修改。

    (2)文件修改已经add到暂存区:git reset HEAD <file>
    1)修改文件:

    2)add到暂存区后查看状态:

    3)git reset HEAD <file>撤销修改后查看状态:

    注意:此时虽说已经从暂存区撤销了add,但是,工作区的内容还并未撤销。

    4)git checkout — <file>接着撤销工作区的修改:

    ok,暂存区、工作区都干净了。

    (3)文件修改不仅add到了暂存区,也commit到了版本库。
    第三种情况,如果已经commit提交了,就需要利用上一次学习的内容啦——版本回滚

    小结:
    git checkout — <file>撤销工作区的修改
    git reset HEAD <file>撤销add到暂存区的修改(从暂存区拉回工作区)
    git reset –hard HEAD^回滚到上一个版本

  4.  删除文件
    (1)先touch一个文件test.txt,并add–>commit:

    (2)linux命令rm删除test.txt并查看状态:

    linux bash下删除文件后,git status捕捉到了删除的信息,现在有两个选择:
    1)git rm确认删除并commit提交:

    2)删错了,将文件恢复到Git库:git checkout — <file>

     

    小结:
    在版本库中使用bash命令rm删除文件之后,需要得到Git的“同意”,Git可以进一步确认是否将其从Git库中删除或恢复回来。
    git rm <file>    #确认删除
    git checkout — <file>    #恢复删除操作

发表评论

电子邮件地址不会被公开。 必填项已用*标注