Git工作区、暂存区、版本库概念

  Git工作区、暂存区、版本库概念

    在整个的git中,一共提供了三个区域。

      工作区:用户操作的文件夹,所有的文件操作都以工作为主。

      Git仓库:

        暂存库:将工作区中为保存的文件保存到暂存区中,此部分由Git维护

        版本库:将项目发布代码的区域。

    用户在工作区中编写的代码,都不会影响到git的版本库,如果说要想将工作区中的代码发布到版本库中,就需要先将工作区的代码提交到暂存库中,使用git add .  命令,然后再使用git commit -a -m "注释"  提交到版本库中。

    

 

 

     保存在暂存区中的智能说是暂时需要的,从工作区中增加到暂存区中的文件,也可以在暂存区中删除,然而要想真正发布项目,就必须提交到版本库中。每一次提交都会生成一个commit id,用于退回版本,而在版本库中的head会指向最后提交的代码。

  GIT版本穿越

    git的强大在于可以很方便的进行代码版本的回退,和前进。核心的概念在于每一次提交都会有一个commit id

    git log  查看提交日志

    git log --pretty=oneline    格式化查看日志

    

 

 

     当这个HEAD -> master指针指向的版本,就表示当前使用的版本。而当有最新的提交上来,指针就会指向当前最新的提交点。当我们改变这个指针的指向,就可以进行代码的版本回退和前进操作。

    现在我这里提交了三次,有三个版本。

    回退到上一个版本:git reset --hard HEAD~1

    

    

 

 

     再次查看的时候,我上一个版本只提交了两次。如果此时发现回退版本回退过头了,想要撤销回来,那这个时候因为回退之前的版本已经删除,则我们需要去看删除日志去找到之前的版本ID

    命令:git reflog    

    

 

 

     可以看到我们上一次的回退点。使用命令:git reset --hard 4d86a25 ,再次查看,三个分支又可以在显示

    

 

 

  GIT撤销修改

    在开发过程中,经常会发生无用的修改操作,在git中可以撤销修改操作,撤销修改需要考虑到两种情况,

      1、在工作区中发生了改变,但是此时还没有提交到暂存区

      2、已经提交到了暂存区,但是没有发布到版本库中(master分支中)

    在工作区中发生改变,撤销。此时已经修改了一个文件,已经有状态显示。

    

 

 

     使用命令:git checkout重新检出代码,会告诉哪一些文件有没有发生过修改。前面修改的是这个文件,也检测出这个文件发生了修改。

    

 

 

     要想恢复代码,使用git checkout  文件名称   来恢复即可。此时恢复之后再通过git status查看状态时,已经没有了修改状态

    

 

 

      工作区已经修改完成,提交到了暂存区中。撤销

    此时修改了两个文件,并且已经使用git add . 增加到了暂存区中,

    

 

 

      要想将暂存区中的代码撤销回来,则要先将暂存区的代码撤回到工作区中,然后再撤销,

    使用命令:git reset  HEAD Hello.java

    

 

 

     撤销回来之后查看状态,发现此时已经退回到工作区中了,在通过git checkout 文件名称      命令进行撤回操作

    

 

 

    文件删除

    要想进行文件的删除,直接通过电脑右击删除即可。但是此时在实际的版本库中是没有被删除的。要想删除,提交到版本库中。

    

 

     如果在日常工作区中发生了删除操作,如果没有提交到版本库中,可以直接检出版本库中的代码,如果在版本库中已经提交删除了,则先退回版本库版本,而后通过检出还原。

    使用命令: git checkout --Demo.java

     

 

 

    

 

posted @ 2020-08-21 16:12  谭旭鹏  阅读(665)  评论(0)    收藏  举报