git 命令 git diff 查看 Git 区域文件的具体改动
查看 Git 区域文件的具体改动 git diff
git status 只能让我们知道文件在 Git 区域内的改动状态,但如果我们想查看某个文件内具体改了什么(也可以理解为在不同 Git 区域中的差异),此时需要用 git diff 命令。
对于 b 文件,由于是新增的文件,其只存在于工作区,且处于 Untracked 状态,Git 认为无论是哪两个 Git 区域之间的比对都没有意义,得到的结果是没有区别。
而对于 a文件,由于已经被提交到仓库了,处于 Git 管理中,所以这个文件同时存在于三个 Git 空间(工作区,暂存区,仓库),我们在工作区内对其进行了文件改动,无论是比对工作区 vs 暂存区或者工作区 vs 仓库,得到的结果应该都是 a 文件里的具体变化内容。而如果比对暂存区 vs 仓库,得到的结果也应该是没有区别。
git diff 用在查看文件内容变化
查看文件当前变动(工作区 vs 暂存区)git diff
工作区做了改动
// 改动 a.txt 文件后可看到文件的具体变化
[root@ci-node1 git_test]# echo "test">>a
看看git stauts,文件被修改了,这个文件被git仓库管理
[root@ci-node1 git_test]# git status
On branch 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: a no changes added to commit (use "git add" and/or "git commit -a")
看看文件里面改了什么 git status无法看到,使用git diff
对比工作区和暂存区
[root@ci-node1 git_test]# git diff a
diff --git a/a b/a
index e69de29..9daeafb
--- a/a
+++ b/a
@@ -, + @@
+test
暂存区和工作区的a做了哪些改动,加了test
//将 a 文件的变动暂存后,查看变化
[root@ci-node1 git_test]# git add a [root@ci-node1 git_test]# git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage) modified: a //对比工作区与暂存区,无变化,git diff 没有输出
[root@ci-node1 git_test]# git diff a // git add 后工作区和暂存区内容一致了,对比,
查看文件当前变动(工作区 vs 暂存区)git diff –cached
这时候对比暂存区与本地仓库,可以看到具体变化
//对比暂存区与本地仓库,可以看到具体变化
[root@ci-node1 git_test]# git diff --cached a
diff --git a/a b/a
index e69de29..9daeafb
--- a/a
+++ b/a
@@ -, + @@
+test
这时候执行git commit
[root@ci-node1 git_test]# git commit -m "modify a"
[master af5856a] modify a
file changed, insertion(+)
// 这时候再执行git diff --cached ,没有输出
[root@ci-node1 git_test]# git diff --cached a
暂存区和本地仓库一样了
再做个验证
// 工作区是干净的,三个区域 工作区、暂存区、本地仓库内容是一致的
[root@ci-node1 git_test]# git status
On branch master
nothing to commit, working tree clean
改动 a 文件后,工作区改动了,再看变化
//改动 a 文件后,工作区改动了,再看变化
[root@ci-node1 git_test]# echo "bbb">a
现在工作区和暂存区不一致的,但暂存区和本地仓库是一致的
// 现在工作区和暂存区不一致的,但暂存区和本地仓库是一致的
[root@ci-node1 git_test]# git diff a
diff --git a/a b/a
index 9daeafb..f761ec1
--- a/a
+++ b/a
@@ - + @@
-test
+bbb
没有输出,因为暂存区和本地仓库是一致的
// 没有输出,因为暂存区和本地仓库是一致的
[root@ci-node1 git_test]# git diff --cached a
总结:
git diff 比较的是 工作区和暂存区
git diff --cached 比较的是 暂存区和本地仓库
git 命令 git diff 查看 Git 区域文件的具体改动的更多相关文章
- 1git命令的使用,查看git仓库状态,添加文件到git跟踪,git提交,查看git分支,查看git仓库日志信息,切换git分支,解决git分支合并后出现冲突的问题
1新建一个存储git的文件夹,命令是: toto@toto-K45VD:~$ mkdir gitfolder 2初始化一个git仓库,命令是: toto@toto-K45VD:~$cd gitfold ...
- Git命令——提交、查看、后退、前进
Git常用命令 1. 命令git init把这个目录变成Git可以管理的仓库: 2. 命令git commit把文件提交到仓库 这里需要注意的是,Git只能跟踪文本文件的改动,如txt文件,网页,所有 ...
- git 命令行(三)-删除文件
在Git中,删除也是一个修改操作,我们实战一下,有一个多余的文件:src/common/Util2.js 我们需要删除这个文件, 一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用 rm命令 ...
- android Git命令家底儿及Git数据通信原理详解
声明:本文为CSDN原创投稿文章,未经许可,禁止任何形式的转载. 现在大部分使用的都是SVN,也有一部分迁移了Git,虽然挺好的,不过还有其它很多版本控制的工具,并没有谁最好用,最重要的是适合自己的公 ...
- Git命令之回退篇 git revert git reset
Git command之回退篇 欲练回退 必先了解:HEAD.index.WorkingCopy HEAD: 当前所在的分支版本顶端的别名,也就是最新的一次commit. git commit 之后与 ...
- 记录自己使用到的git命令行代码与git使用流程
1.安装创建版本库 新建一个文件夹,用命令行实现: $ cd /d //进入d盘 $ mkdir gitproject //新建gitproject文件夹 $ cd ...
- git 命令提交项目到git服务器
1.先下载git,然后安装git https://git-scm.com/downloads 2.在电脑任意盘创建一个目录 3.在创建的目录下点击右键 4.初始化git 使用git init 初始化, ...
- Git命令之diff
工作区(working tree),暂存区(index /stage),本地仓库(repository) git跟不同的参数,比较不同的区间的版本. git diff:是查看working tree与 ...
- Git命令家底儿及Git数据通信原理详解
http://geek.csdn.net/news/detail/72807?utm_source=tuicool&utm_medium=referral
随机推荐
- 安卓数据库sqllite查看工具Android Debug Database使用教程
要使用Android Debug Database,首先得在安卓项目的build.gradle(module:app)文件中加入如下代码: debugCompile 'com.amitshekhar. ...
- 基于ElementUI封装可复用的表格组件
<template> <section class="ces-table-page"> <!-- 表格操作按钮 --> <section ...
- AtCoder Beginner Contest 137 D题【贪心】
[题意]一共有N个任务和M天,一个人一天只能做一个任务,做完任务之后可以在这一天之后的(Ai-1)天拿到Bi的工资,问M天内最多可以拿到多少工资. 链接:https://atcoder.jp/cont ...
- 017_linuxC++之_多态的引入
多态:一种接口,多种方法(同一种调用方法,根据不同的对象,调用不同类中的函数)静态联编:非虚函数,在编译时确定好动态联编: 1. 对象里有指针,指向虚函数表 2. 通过指针,找到表,调用虚函数 3 ...
- kubernetes1.11.1 部署prometheus
部署前提:已经安装好了kubernetes的集群,版本是1.11.1,是用kubeadm部署的. 2台虚拟机:master:172.17.1.36 node1:172.17.1.40 pro ...
- JVM(十二),垃圾回收面试题
十二.垃圾回收面试题 1.Object的finalize()方法 2.Java中的强软弱虚四种引用 (1)强引用 (2)软引用(间接引用) (3)弱引用 (4)虚引用 (5)四种引用区别
- Navicat创建数据库或导入数据库
双击点亮数据库 导入数据库 点击开始
- js 获取滚动条的高度
function getScrollTop() { var scroll_top = 0; if (document.documentElement && document.docum ...
- python定时任务-sched模块
通过sched模块可以实现通过自定义时间,自定义函数,自定义优先级来执行函数. schedule = sched.scheduler( time.time,time.sleep) schedule是一 ...
- 最远 Manhattan 距离
最远 Manhattan 距离 处理问题 K维空间下的n个点,求两点最远曼哈顿距离 思路 以二维为例介绍算法思想,即可类推到k维.对于P,Q两点,曼哈顿距离|Px-Qx|+|Py-Qy|可看作(±Px ...