Git工作区和暂存区及对修改的管理

版权声明:未经允许,禁止转载 https://blog.csdn.net/weixin_43216017/article/details/88083892

       前文中,我们主要介绍了Git的安装以及一些初步的管理方式。对于文件的添加我们主要使用git addgit commit -m,现在我们介绍一下Git版本管理的原理,让大家更好的理解。


工作区和版本库

       在Git中,有两个工作的部分:

  1. 第一个部分叫工作区,也就是从桌面的目录打开的部分;
  2. 另一个部分叫做版本库,也就是在工作区中有一个.git的目录,这个目录正常是隐藏的。在版本库中还有两个部分,第一部分叫Stage,也就是暂存区,第二部分是Git为我们创造的Master目录。

git

       接下来,我们按照操作步骤的顺序一步一步来解析。首先,我们在工作区中打开文件,并修改文件,此时文件只是在工作区内,并没有进入我们的版本库。
       我们举例说明,之前我们的文档是:

I love coding,especially python.
Hello world!
Have a nice day!
I have a wonderful girl.

       现在我们删除第三行,也即是:

I love coding,especially python.
Hello world!
I have a wonderful girl.

       我们用git status查看一下状态:
status
       它很清楚的告诉了我们,文件被改动了,但是并没有被add,也没有被commit。此时的文件就在工作区中,没有进入到版本库。如果不继续操作的话,以后是找不到的。

       接下来,我们使用git add将其添加到版本库中去。然后,再用git status查看一下状态:
status2
       git也很清楚的告诉了我们,文件需要被commit上去。此时修改后的文件在Stage暂存区中。也就是文件被暂时放在了这里,需要被提交上去。

       最后我们在使用git commit
status2
       此时,一个文件才正式地进入版本库。


Git管理修改

       接下来,是一个重要的思维:Git所管理的不是文件,而是版本。只要你修改了一次,那么这就是一个版本。Git管理的就是这个不同的版本,它不是一个管理不同文件的软件,而是一个管理相同文件不同版本的软件。

       现在,我们具体展示,首先对文件进行修改:

I love coding,especially python.
Hello world!
I have a wonderful girl.
She is pretty.

       然后,我们把文件add到暂存区。
status3
       我们在对文件进行第二次修改:

I love coding,especially python.
Hello world!
I have a wonderful girl.
She is pretty.
Wa haha

       至此,我们两次修改了文件的内容,并且只add了第一次。如果Git管理的是文件的话,那么现在我们使用commit将得到的是最后的版本。如果Git管理的是版本的话,我们将只能得到第一个次修改的版本。
status5
       这就说明我们第二次的修改没有被提交上去。说明git管理的是版本,而非文件。

       我们可以使用git diff HEAD --的方式来查看版本库中的文件和工作区中的文件是否有不同,从而决定是否需要add+commit文件。
status6

       现在看来,文件是由不同的,如果文件时相同的,那么是不会输出结果的。

猜你喜欢

转载自blog.csdn.net/weixin_43216017/article/details/88083892