(五)Git管理修改

工作区与暂存区

工作区

工作区相对来说是一个比较具体的概念,你电脑中能看到的目录,比如这的:F://lelsie/learnGit目录就是一个工作

暂存区

是一个比较抽象的概念,当我们将文件使用Git add命令添加到仓库后,但还提交(commit)的文件区域叫可以看做暂存区。Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。

(五)Git管理修改

Git add:将文件添加到暂存区中
Git commit:在将暂存区的内容提交到当前分支

Git管理修改

我们说为文件新增一行,删除一行等都叫一个修改。这里有一个很重要的概念就是,Git管理的修改而非文件;比如:我们为文件新增一行,然后使用Git add命令添加到暂存区中,然后在为文件新增一行,最后使用Git commit命令提交到分支;然后使用Git diff head – readme.txt(文件名)查看当前版本与工作区的readme.tx的异同,将发现第二次新增的行并未添加到分支。

(五)Git管理修改

这里关于diff命令,在解释一下:

(五)Git管理修改

源文件(—):通常指工作区文件
目标文件:如果Git diff后面指定版本如:head就表示当前分支文件;head^表示上一个分支相应的文件
@@ -18,3 +18,[email protected]@:表示源文件和18开始的三行和目标文件18开始的四行形成和差异;

图片中的“-”开始的行表示源文件内容,“+”开始的行表示目标文件内容 ,” “开始的行表示目标文件
和源文件都有的相同行

这里可以看出第二新增的’5’这行,并没有别提交到分支;第一次,新增‘4’这行,然后在添加到暂存区,然后又新增‘5’这行,然后提交readme.txt文件,但是只有被添加到暂存区的的‘4’这行被提交到分支,而新增的‘5’这行并未提交到分支。就是所谓的Git管理的是修改而非文件。
如果我们也想将’5’这行提交分支,那也必须在使用add和commit命令提交一次。commit命令是提交的是已经添加暂存区的所有内容。

Git diff – 文件名:比较的暂存区和工作区该文件异同
Git diff head|head^ – 文件名:比较的相应版本和工作区该文件异同