1.git diff [<options>] <commit> <commit> options 使用--name-only(git diff HEAD cd5043a --name-only)可以生成所有的修改的文件,或者使用git diff HEAD cd5043a --raw 也可以,根据生成的信息分析,那些文件是新加的那些是改变的那些是删除的,然后可以得到两个版本的所有改变,生成补丁文件. 2.如果使用hg 版本工具,可以使用下面的 hg status --re…
消除Git diff中^M的差异 在Windows上把一个刚commit的文件夹上传到了Ubuntu.在Ubuntu上使用git status查看,发现很多文件都被红色标注,表示刚刚修改未add.在Windows上明明是working tree clean,同一个文件夹用FTP传到了Ubuntu,怎么会修改文件内容呢? 于是,用git diff查看文件差异,每一行结尾都有^M标注.百度了一下,了解了原因: 这是由于换行符在不同的操作系统上定义的区别造成的. Windows用CR LF来定义换行,…
git diff操作 git diff用于比较差异: git diff 不加任何参数 用于比较当前工作区跟暂存区的差异 git diff --cached 或者--staged 对比暂存区(git add 之后)和本地仓库(git commit 之后) git diff HEAD 对比工作区(未 git add)和本地仓库库(git commit 之后) git diff 分支名 查看当前分支跟指定的分支的差异 git diff 分支名1 分支名2 查看两个指定分支(已提交的)的差异,分支2 跟…
说明 以下命令可以不指定 <filename>,表示对全部文件操作. 命令涉及和 Git本地仓库对比的,均可指定 commit 的版本. HEAD 最近一次 commit HEAD^ 上次提交 HEAD~100 上100次提交 commit版本是每次提交产生的哈希值 工作区 vs 暂存区 查看文件在工作目录与暂存区的差别.如果还没 add 进暂存区,则查看文件自身修改前后的差别.也可查看和另一分支的区别. git diff <filename> 暂存区 vs 本地仓库 查看已经 a…
通过git的diff命令对两个commit id的版本进行差异化的对比.中文文件时出现乱码. git diff 6bded8d0c1fe1746c122121217dc0c88667091089 a9b87b07908a446a5471b233232ade2dbd0734d8 --name-only "markdown/2016/07/\345\210\206\346\224\257\346\265\213\350\257\225.md" 执行如下命令,修改core.quotepath…
转载原文: http://fsjoy.blog.51cto.com/318484/245465/ 1. 查看当前所有的更改情况.git status 结果有3部分,changes to be commited, changes not staged for commit, untracked files 2.那么有哪些命令查看具体的改动呢? git diff --staged 仅查看1的变化(changes [staged]to be commited) git diff 仅查看2的变化(cha…
前言 前面有一篇文章<一个有些意思的项目--文件夹对比工具(一)>,里面简单讲了下diff算法之--Myers算法. 既然是算法,就会有实现,比如git diff中有Myers的实现,git diff默认就是用了这个算法(也可以选择其他算法):这个Myers算法,在linux的diff工具中也有实现:或者在一些js库.java库等都有实现. 另外,既然是算法,那就有输入和输出,如果大家都正确实现的话,按理说输出格式也是能达成统一的. 接下来我们就看一下在各个软件中的输出格式. git diff…
这是由于换行符在不同的操作系统上定义的区别造成的. Windows用CR LF来定义换行,Linux用LF. CR全称是Carriage Return ,或者表示为\r, 意思是回车. LF全称是Line Feed,它才是真正意义上的换行表示符. 如果用git diff的时候看到^M字符,就说明两个文件在换行符上有所差别. 下面简单的方法可以让git diff的时候忽略换行符的差异: git config --global core.whitespace cr-at-eol 更好的方法是每个项目…
在git提交环节,存在三大部分:working tree(工作区), index file(暂存区:stage), commit(分支:master) working tree:就是你所工作在的目录,每当你在代码中进行了修改,working tree的状态就改变了. index file:是索引文件,它是连接working tree和commit的桥梁,每当我们使用git-add命令来登记后,index file的内容就改变了,此时index file就和working tree同步了. com…
  Git diff 用于比较两次修改的差异 1.1 比较工作区与暂存区 git diff  比较的是单个仓库的工作区与暂存区的差别,repo diff是对git diff的封装,用来分别显示各个项目工作区下的文件差异, 它也可以加入路径 git diff [<path>...],一般不加路径,表示为当前仓库 1.2 比较暂存区与最新本地版本库(本地库中最近一次commit的内容) git diff --cached  [<path>...] 1.3 比较工作区与最新本地版本库 g…