Git 基础应用(二)git diff命令

git diff 提交内容比较

从https://git.oschina.net/minasia/GitTest.git 克隆一个项目或者自己手动创建一个git项目(上篇文章已讲解)

git clone https://git.oschina.net/minasia/GitTest.git
cd GitTest

进入到项目中,添加一个文件,编辑一个文件

$ echo 'abc' >> file1
$ echo 'new file ' >> newFile

查看当前git状态

$ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Changes not staged for commit:
      (use "git add ..." to update what will be committed)
      (use "git checkout -- ..." to discard changes in working directory)
    
        modified:   file1
    
    Untracked files:
      (use "git add ..." to include in what will be committed)
    
        newFile
    
    no changes added to commit (use "git add" and/or "git commit -a")

但是git status 命令只能查看哪些文件发生了变化,无法查看具体内容的变化。如何查看修改的文件内容呢,那就需要使用git diff命令。git diff命令的作用是比较修改的或提交的文件内容。

diff --git a/file1 b/file1
index e4b01c6..608842c 100644
--- a/file1
+++ b/file1
@@ -3,3 +3,4 @@ file1
 
 aaa
 aa
+abc
~
~
~
~
~
~
~
(END)

上面的命令执行后需要使用q退出。命令输出当前工作目录中修改的内容,并不包含新加文件,请注意这些内容还没有添加到本地缓存区。

将修改内容添加到本地缓存区,通配符可以把当前目录下所有修改的新增的文件都自动添加:

$ git add *

再执行git diff会发现没有任何内容输出,说明当前目录的修改都被添加到了缓存区,如何查看缓存区内与上次提交之间的差别呢?需要使用--cached参数:

$ git diff --cached

diff --git a/file1 b/file1
index e4b01c6..608842c 100644
--- a/file1
+++ b/file1
@@ -3,3 +3,4 @@ file1
 
 aaa
 aa
+abc
diff --git a/newFile b/newFile
new file mode 100644
index 0000000..fa49b07
--- /dev/null
+++ b/newFile
@@ -0,0 +1 @@
+new file

最后提交代码

$ git commit -m '提交代码' 

提交后git diff与git diff --cached都不会有任何输出了。

git diff 分支比较
# 创建分支
$ git branch newBranch
# 切换分支
$ git checkout newBranch
# 修改文件
$ echo 'aaaaa' >> file1
$ echo 'new new file' >> NewFile1
# 添加到缓冲区
$ git add *
# 提交
$ git commit -m '提交'

查看master分支与newBranch分支之间的差别

$ git diff master

diff --git a/NewFile1 b/NewFile1
new file mode 100644
index 0000000..e2fbd00
--- /dev/null
+++ b/NewFile1
@@ -0,0 +1 @@
+new new file
diff --git a/file1 b/file1
index e4b01c6..f2ece01 100644
--- a/file1
+++ b/file1
@@ -3,3 +3,5 @@ file1
 
 aaa
 aa
+abc
+aaaaa
diff --git a/file2 b/file2
index 3213394..bc65a8d 100644
--- a/file2
+++ b/file2
@@ -1,2 +1,3 @@
 file2
 edit file2

git diff 是一个难以置信的有用的工具,可以找出你项目上任意两个提交点间的差异。可以使用git help diff详细查看其他参数和功能。

你可能感兴趣的:(Git 基础应用(二)git diff命令)