Discuss / Git / git diff HEAD -- README.md

git diff HEAD -- README.md

Topic source

git diff HEAD -- file,比较的是工作区中的文件与版本库中文件的差异。HEAD指向的是版本库中的当前版本,而file指的是当前工作区中的文件。所以老师的那个命令查看的是工作区进行了二次修改的文件(未提交)和版本库文件(已经提交了的第一次文件)进行比较。所以是提交的第一次修改的文件,但是git diff比较的是未提交的第二次修改的文件和已提交的第一次修改的文件。可以看看这个:https://blog.csdn.net/u013485584/article/details/53303858 我是这样实验的: 首先,在英文后加一个数字1

git tracks changes 1

之后,

git add README.md

然后再修改1为2,即

git tracks changes 2

,然后

git commit -m "1"

git status

显示的是:

On branch master
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

反映的是README.md被修改了(上一节的内容) 这里指的是第二次修改,然后执行:

git diff HEAD -- README.md

显示:

diff --git a/README.md b/README.md
index 6642af0..acc9bf4 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
 ### Just  github learn

 第一次尝试
-git tracks changes 1
\ No newline at end of file
+git tracks changes 2
\ No newline at end of file

这里说明了没提交的git tracks changes 2和已经提交的git tracks changes 1之间的区别。 这时候,执行

git push origin master

在github上面可以看到,显示的是git tracks changes 1 说明commit的文件就是第一次add的文件。 现在,第二次修改的还在工作区,那么我们执行:

git add README.md
git commit -m "2"
git push origin master

返回GitHub上面看,提交成功了,显示为git tracks changes 2

有错误的理解,请指正,谢谢。

LJX_ColinLee

#2 Created at ... [Delete] [Delete and Lock User]

与我的理解一样,感谢分享。@Starry_night_y


  • 1

Reply