git status : 检查当前仓库缓存区域的文件状态(检查当前所在的分支)
git diff 文件 : 查看具体修改过哪些内容
a. 修改文件 --> git status (git status第一个状态)
我们先修改一个a.txt文件
$ vi a.txt
我们在运行一下git status
注意3 : On branch master的意思需要注意!是当前在master分支下
注意4 : 图片( )中的use啥啥啥的是下一步可以执行的操作,列出来都是同级的(就是执行了一个另一个就不能操作了)
图片中告诉我们a.txt被修改过,但还没有准备提交修改,这个时候我们能用git diff命令看看修改了什么内容
很明显可以看到我们多加了一行内容
b. 修改文件 --> git add -->git status (git status第二个状态)
我们之前修改过文件了,我们还查看过修改的内容了,此时我们用git add命令添加到缓存区(暂存区)
这个时候我们来走一下git status
这个时候我们看一看见modified: a.txt变成绿色了,可执行的操作也变了
c.修改文件 --> git add --> git commit -m “说明” -->git status (git status第三个状态)
我们之前git add把文件添加到了暂存区,现在我们用git commit把文件传到分支(当前版本库)当中
这个时候我们再来走一下git status
我们可以看见nothing to commit,working tree clean,意思是没有东西需要上传到分支,工作区没有要提交的新文件(可以理解为当前版本库和工作区文件都是最新的,暂存区没有文件了)
特别注意!!!
git diff是个很神奇的东西,我们来了解一下
1.git diff查看的相当于是工作区修改过的文件和缓存区中的文件进行比较接下来我们来敲几行代码分别看看
只在工作区创建的文件与修改后的文件git diff:
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ vi b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ cat b.txt
第一次创建b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ vi b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ cat b.txt
第一次创建b.txt
第一次修改b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git diff b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$
(git diff没有进行正常的比较,证明在工作区进行修改git diff不会进行比较)
--------------------------------------------------------------------
add到缓存区后在与改后的文件git diff:
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ cat b.txt
第一次创建b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git add b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 2 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ vi b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ cat b.txt
第一次创建b.txt
第一次修改b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git diff b.txt
diff --git a/b.txt b/b.txt
index be34c4b..a25ca89 100644
--- a/b.txt
+++ b/b.txt
@@ -1 +1,2 @@
第一次创建b.txt
+第一次修改b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$
(git diff进行了正常的比较,所以git diff相当于是在进行暂存区文件和工作区修改过的新文件进行比较)
2.git diff HEAD – 文件名 查看相当于当前版本库(分支)和工作区的文件之间的比较
当前版本库第一次创建版本和工作区第一次修改版本比较:
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git log --pretty=oneline
7963f505c72f34b0e4981c99b65254e63748b823 (HEAD -> master) 第一次创建
3f59f5cc9e6ec3b530aa496ad034d5734a839149 重逢
5faef836c042e62a137ad3d9efcb11d681099e85 hellood
c3fbdec341d9402696dbb153040f5bf7ae24c77c (origin/master) add
98c659c2c02161ab0c830952e6a416b24000ddd7 风也温柔
24b1392120c340df0f85eedc772630948236ebd7 hello
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ cat b.txt
第一次创建b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ vi b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ cat b.txt
第一次创建b.txt
第一次修改b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git diff HEAD -- b.txt
diff --git a/b.txt b/b.txt
index be34c4b..a25ca89 100644
--- a/b.txt
+++ b/b.txt
@@ -1 +1,2 @@
第一次创建b.txt
+第一次修改b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$
(可以看见比较结果,这是当前版本库和工作区的比较)
---------------------------------------------------------------
git add后在执行代码:
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git add b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git status
On branch master
Your branch is ahead of 'origin/master' by 3 commits.
(use "git push" to publish your local commits)
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: b.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
repo/
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$ git diff HEAD -- b.txt
diff --git a/b.txt b/b.txt
index be34c4b..a25ca89 100644
--- a/b.txt
+++ b/b.txt
@@ -1 +1,2 @@
第一次创建b.txt
+第一次修改b.txt
22116@LAPTOP-NS83M7IQ MINGW64 /d/learngit (master)
$
(可以得出结论,此时不在是工作区和缓存区比较了,是当前版本库和工作区比较)
记得用 随时掌握文件的修改的情况,用 git diff 查看修改的内容