Git diff 命令
2016-01-19 16:33
267 查看
git diff命令解析
diff里面a表示前面那个变量,b表示第二个变量HEAD commit版本 Index staged版本
(-)创建演示目录test_git,添加文件a.txt
mkdir test_git git init touch a.txt git add a.txt git commit a.txt -m '首次提交' git push
a、查看尚未暂存的文件更新了哪些部分,不加参数直接输入
git diff
此命令比较的是工作目录(Working tree)和暂存区域快照(index)之间的差异
也就是修改之后还没有暂存起来的变化内容
echo "i am a file" > a.txt git diff a.txt
结果如图,我刚才修改的a.txt文件的区别被显示出来,但是注意这是和Index(暂存区)做的比较。先附上git暂存区的概念图:
b、查看已经暂存起来的文件(staged)和上次提交时的快照之间(HEAD)的差异
git diff--cached
git diff --staged
1)给a.txt文件添加一行,然后添加到暂存区
root@iZ28npoowsjZ:~/test_git# echo "3.i fuck this file">>a.txt root@iZ28npoowsjZ:~/test_git# git add a.txt root@iZ28npoowsjZ:~/test_git# git diff --staged
显示的是下一次commit时提交到HEAD的内容(不带-a情况下),这里我有一个误区,总以为add命令只是第一次添加文件的时候才会使用,其实git add 命令可以把所有当前的修改都先保存到暂存区。
git commit命令才是将暂存区的命令提交到本地master。
git push命令是把本地master的变化push到远程master。
c、显示工作版本(Working tree)和HEAD的差别
git diffHEAD
这里我算是知道了,
git diff命令不加参数的时候就是用本地工作目录下的代码进行比较的。
d、直接将两个分支上最新的提交做diff
git difftopic master 或 git diff topic..master
e、输出自topic和master分别开发以来,master分支上的changed。
git diff topic...master
f、查看简单的diff结果,可以加上–stat参数
git diff --stat
g、查看当前目录和另外一个分支的差别
git diff test
显示当前目录和另一个叫’test’分支的差别
git diff HEAD – ./lib
显示当前目录下的lib目录和上次提交之间的差别(更准确的说是在当前分支下)
h、比较上次提交commit和上上次提交
git diffHEAD^ HEAD
i、比较两个历史版本之间的差异
git diffSHA1 SHA2
相关文章推荐
- 二叉树创建-代码
- Swift学习之扩展
- Java集合框架TreeMap部分发现的一个问题
- 如何做好程序,卖个好价钱?价格高了没人买,低了技术支持又太麻烦。最要命的是买了拿到代码或软件又申请退款。请各位帮忙?
- json datetime转换问题
- 网页性能
- JavaSE-子类实例化对象的过程
- CUBE 和 ROLLUP 之间的具体区别
- java泛型
- csharp:Microsoft.Ink 手写识别(HandWriting Recognition)
- Android开发笔记(五十三)远程接口调用AIDL
- 微机接口课设 汽车控制系统 C语言源代码 Proteus 8086
- Swift学习之可选链式调用
- 1月19号 UIImageView
- json转csv
- 1006. Sign In and Sign Out (25)
- JS获取CSS样式(style/getComputedStyle/currentStyle)
- 创建docker swarm集群的两种方式
- java解析html
- session过期后自动跳转到登录页面