git diff 四种比较方式
来源:互联网 发布:python pipes 编辑:程序博客网 时间:2024/06/02 03:58
工作场景
在用git进行版本控制的时候,通常会有这样的需求:
1.我想知道我的工作目录中都发生了那些变化,以辅助我的commit操作。
2.当要真正进行提交时,我需要清楚将要提交的内容和版本库的内容有哪些不同,这样的提交是正确的吗。
3.在线上代码出现问题的时,明确的知道原来有个版本的代码是好用的,除了进行线上紧急回滚外,我需要知道到底进行了什么操作引起了失败。
除此之外可能还会有其他的需求吧。
先上理论
那git给我们提供了哪些方式,是我们对自己的修改或者变更了如指掌呢。
1. git diff
显示工作目录和索引之间的差异。
2. git diff commit
显示工作目录和指定提交之间的差异。比较常见的用法是比较工作目录于HEAD指向的提交之间的差异,这时需要用HEAD替代commit。
3. git diff –cached commit
比较索引(stage)和给定提交之间的差异,其中commit可以省略,如果省略,默认比较的是索引与HEAD指向的提交间的差异。
4. git diff commit1 commit2
比较两个提交之间的差异。该命令会忽略工作目录和索引之中的内容,直接比较两个提交之间的变化。
有说有练
第一步:先初始化一个git仓库,并作两次提交,且在工作目录中进行一些变更:
mkdir git-diffcd git-diff git initecho "Hello git diff" >> readme.txtgit add .git commit -m 'first commit'echo "hello next commit" >> readme.txt git add .git commit -m 'second commit'echo "I'm in the stage" >> readme.txt git add .echo "I'm in the workplace" >> readme.txt
第二步,开始操作
bingo 初始化工作做好了,来看具体的操作吧:
1.git diff 实例中显示,工作目录比stage中添加了一行I’m in the workplace
git diffdiff --git a/readme.txt b/readme.txtindex cecb589..6f877a8 100644--- a/readme.txt+++ b/readme.txt@@ -1,3 +1,4 @@ Hello git diff hello next commit I'm in the stage+I'm in the workplace
2.git diff commit 实例中对当前工作区和HEAD指向的提交进行比较,显示工作区比HEAD指向的提交新添加了两行。
git diff HEADdiff --git a/readme.txt b/readme.txtindex 56e1883..6f877a8 100644--- a/readme.txt+++ b/readme.txt@@ -1,2 +1,4 @@ Hello git diff hello next commit+I'm in the stage+I'm in the workplace
3.git diff –cached commit 实例中,用stage中的文件与HEAD指向中的版本进行了比较,很明显,我在提交提交之后想readme.txt中添加了一行I’m in stage并将其添加到了stage中。
git diff --cached HEADdiff --git a/readme.txt b/readme.txtindex 56e1883..cecb589 100644--- a/readme.txt+++ b/readme.txt@@ -1,2 +1,3 @@ Hello git diff hello next commit+I'm in the stage
4.git diff commit1 commit2 比较了HEAD与其上一次提交之间的差异,通过观察我们初始化的操作,可以发现,这是完全正确的显示。
git diff HEAD HEAD^diff --git a/readme.txt b/readme.txtindex 56e1883..8adabc7 100644--- a/readme.txt+++ b/readme.txt@@ -1,2 +1 @@ Hello git diff-hello next commit
小实例,大道理,通过简单的实例,了解命令背后的真实原理,以促进我们工作中对其的使用,以及解决问题时不那么迷茫。
- git diff 四种比较方式
- 比较提交 - Git Diff
- 比较提交 - Git Diff
- git diff 比较结果
- 比较提交 - Git Diff
- git diff 比较
- Git 命令 比较 [ git diff HEAD -- file ]
- diff & patch 制作及打补丁(两种生成补丁的方式(git和diff))
- Git diff代码比较的高级技巧
- Git diff 代码比较的高级技巧
- Git diff 比较不同版本的差异
- git diff 比较两个版本的差异
- git diff 比较两个版本的差异
- git diff 比较两个版本的差异
- Git diff 比较两个版本的差异
- Git服务器四种协议比较
- 四种常见 Git 工作流比较
- Git diff
- 解决spring、springMVC重复扫描导致事务失效的问题
- cocos2dx游戏资源加密之XXTEA
- 推荐些好的博客和iOS学习网站(有的需要CrossingWall)
- 剑指Offer-19-二叉树的镜像
- RAC 11g的基本概念四
- git diff 四种比较方式
- hdoj 1004 Let the Balloon Rise 解题报告
- 国际标准行业分类(ISIC Rev 4.0)
- github fork项目后与原项目进行同步
- ARM开发板定位参数解释
- RAC 11g的基本概念三
- 大二训练第二周 - Distance Queries lca
- Linux挂载U盘-实战操作
- 部署WCF IIS配置报错 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”