一、案例背景:
1.项目目录下有以下文件:
2.其中,testfile.txt的内容初始只有“11111”;
3.app.py文件已被成功提交至版本库;
- 输入以下命令查看当前仓库状态:
git status
可以看到除了app.py,其他文件都都没有被追踪,untracked。二、文件提交至暂存区
输入以下命令,将textfile.txt提交至暂存区:
git add testfile.txt
可以看到如下结果:提示发现了一个新文件(new file),表明testfile.txt已被提交至暂存区,并等待被提交至版本库(Changes to be committed)。
此时,在testfile.txt文件中再添加一行“22222”,文件内容变为:
再次查看仓库状态:
可以看到仓库虽然追踪到了testfile.txt的改动(modified),但这个改动后的版本还没有被提交至暂存区(Changes not staged)。
三、将版本库内容与工作区内容进行比较
输入以下命令:
git diff HEAD -- testfile.txt
可以看到以下结果:
“---”表示版本库里的版本,由于我们只是将testfile.txt提交至暂存区,但还没有将暂存区里的testfile.txt提交至版本库,因此版本库里testfile.txt的文件版本是“无”(/dev/null)。
“+++”表示当前工作区内的版本,(b/testfile.txt)
“@@ -0,0 +1,2 @@”
“-”表示版本库里的版本,如前面所述由于版本库里目前还没有testfile.txt,所以显示此时文件内容是从第0行到第0行;
“+”表示当前工作区的版本,由于当前文件内容已经变为两行:
所以文件内容是从第1行到第2行。
+11111
+22222
表示当前工作区中testfile.txt的内容。
四、将暂存区文件提交至版本库
使用以下命令:
git commit -m 'testfile第一次提交'
此时再查看仓库状态:
发现暂存区内对于testfile.txt文件已经没有了“new file”这一状态,证明testfile.txt文件的初始版本(即内容里只有一行“11111”)已被提交至版本库。
此时,再将版本库内容与工作区内容相比较:
可以看到版本库里的版本状态(---)已变为“a/testfile.txt”,因为当前版本库中已经有了textfile.txt的初始版本。
@@ -1 +1,2 @@:
由于初始版本中只有一行内容“11111”,所以初始版本状态是“-1”。
当前工作区内的testfile.txt有两行内容,所以是“+1,2”
-11111表示修改前版本内容,
+11111
+22222
表示目前工作区内textfile.txt文件的内容
五、将修改后的版本提交至暂存区、版本库
再次使用“git add”命令将修改后的textfile.txt提交至暂存区:
git add testfile.txt
查看此时仓库状态:
发现testfile.txt文件的“modified”状态已变为绿色,说明修改后的版本已被提交至暂存区,等待被提交至版本库。
再次使用“git commit”命令将修改后的testfile.txt版本提交至版本库:
git commit -m 'testfile第二次提交'
查看此时仓库状态:
发现关于testfile.txt文件的信息已全部消失,说明其修改版也已被提交至版本库。
再次使用“git diff HEAD”命令比较版本库里的版本和工作区的版本:
发现输入命令后已没有任何信息提示,说明修改后的版本已经被成功提交至版本库,版本库内的testfile.txt已经与工作区中的testfile.txt版本一致。至此,全部试验结束