参考文献:
git diff输出信息的含义
git diff的最全最详细的4大主流用法
git diff 的简单使用(比较版本区别)
git diff #查看 workspace(工作区) 与 (暂存区) 的差别的;
git diff p.py #查看 workspace(工作区)p.py文件 与 (暂存区) p.py文件的差别。
git diff HEAD #查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本);
git diff --cached # 查看暂存区与 local repositorty(本地仓库) 的差别的;
git diff HEAD^ # 查看当前工作区与上一个版本的差别;
git diff HEAD^^ # 查看工作区与上上个版本的的差别,以此类推;
git diff HEAD~1 # 查看工作区与上一个版本的差别;
git diff HEAD~2 # 查看工作区与上上一个版本的差别,以此类推;
git diff master dev #比较两个分支上最后 commit 的内容的差别;
git diff master dev --stat #显示出所有有差异的文件(不详细,没有对比内容);
git log dev ^master #查看commit记录中, dev有而 master没有的commit;
git log master…dev # 不知道谁提交的多谁提交的少,单纯想知道有什么不一样;
git log --left-right dev…master #在上述情况下,再显示出每个提交是在哪个分支上;
新建三个文件,分别为p.py、t.py和z.py,内容分别为:
#p.py
p=1
#t.py
t=1
#z.py
z=1
然后
git init
git add .
git commit -m '1'
分别修改p.py、t.py和z.py,内容分别为:
#p.py
p=1
p=2
#t.py
t=1
t=2
#z.py
z=1
z=2
然后执行:
git status
可以看到有三个文件被修改。
执行:
git diff
#查看 workspace(工作区) 与 (暂存区) 的差别的。
git diff p.py
#查看 workspace(工作区)p.py文件 与 (暂存区) p.py文件的差别。
执行:
git diff HEAD
查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)
将p.py提交到暂存区
git add p.py
执行:
git status
执行:
git diff
由于工作区的p.py和暂存区的p.py是相同的,因此只有t.py和z.py的不同
执行:
git diff HEAD
由于p.py现在只更新到暂存区,因此工作区和仓库区会有三个文件的不同。
执行:
git diff --cached
查看暂存区与 local repositorty(本地仓库) 的差别的。
由于暂存区只有p.py更新了,所以暂存区和仓库区只有p.py是有差别的。
执行:
git log --oneline
只有一次提交
git diff HEAD^
查看当前工作区与上一个版本的差别。
最新版本的上一个版本就用 HEAD^ 表示, 依次类推 那么最新版本的 上一个版本的上一个版本就是 HEAD^^
由于只有一个版本,也就是当前最新的版本,因此无法使用该命令查看当前工作区与上一个版本的差别。
执行:
git add .
git commit -m '2'
执行:
git diff HEAD^
查看工作区与上一个版本的差别
修改p.py和t.py文件:
#p.py
p=1
p=2
p=3
#t.py
t=1
t=2
t=3
#z.py
z=1
z=2
执行:
git status
执行:
git diff HEAD
查看 workspace 和 local repository 的差别的。(HEAD 指向的是 local repository 中最新提交的版本)
执行:
git diff HEAD^
查看工作区域上一个版本的区别
执行:
git diff HEAD~1
查看工作区与上一个版本的差别
git diff HEAD~X X 代表^ 的个数。 即: git diff HEAD~1 代表最新版本的上一个版本。 git diff HEAD~2 代表最新版本的上一个版本的上一个版本。
执行:
git add .
git commit -m '3'
修改p.py和t.py文件:
#p.py
p=1
p=2
p=3
p=4
#t.py
t=1
t=2
t=3
t=4
#z.py
z=1
z=2
执行:
git diff HEAD^^
查看工作区与上上个版本的的差别:
git diff HEAD~2
查看工作区与上上个版本的的差别:
执行:
git add .
git commit -m '4'
执行:
git checkout -b dev
新建一个dev分支:
修改p.py、t.py和z.py文件:
#p.py
p=1
p=2
p=3
p=4
dev_p=1
#t.py
t=1
t=2
t=3
t=4
dev_t=1
#z.py
z=1
z=2
dev_z=1
执行:
git diff master dev
比较两个分支上最后 commit 的内容的差别.
因为dev分支上虽然有修改的文件,但没有提交,所以最后一次commit是相同的。
执行:
git commit -am 'dev 1'
再次执行:
git diff master dev
dev分支和master分支相比,有哪些变化。
执行:
git diff dev master
master分支和dev分支相比,有哪些变化。
执行:
git diff master dev --stat
显示出所有有差异的文件(不详细,没有对比内容)
git diff master dev p.py
显示指定文件的详细差异(对比内容)
git diff dev master p.py
显示指定文件的详细差异(对比内容)
执行:
git checkout master
修改p.py、t.py和z.py文件:
#p.py
p=1
p=2
p=3
p=4
master_p=1
#t.py
t=1
t=2
t=3
t=4
master_t=1
#z.py
z=1
z=2
master_z=1
执行:
git commit -am 'master 1'
修改p.py、t.py和z.py文件:
#p.py
p=1
p=2
p=3
p=4
master_p=1
master_p=2
执行:
git commit -am 'master 2'
git log dev ^master
查看commit记录中, dev有而 master没有的commit。
git log master ^dev
查看commit记录中, master有而dev没有的commit。
git log master…dev
不知道谁提交的多谁提交的少,单纯想知道有什么不一样
git log dev...master
不知道谁提交的多谁提交的少,单纯想知道有什么不一样
git log --left-right dev…master
在上述情况下,再显示出每个提交是在哪个分支上
注意 commit 后面的箭头,根据我们在 –left-right dev…master 的顺序,左箭头 < 表示是 dev 的,右箭头 > 表示是 master的。