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 <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: file1
Untracked files:
(use "git add <file>..." 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详细查看其他参数和功能。