相关文章推荐
逃课的滑板  ·  Excel ...·  1 年前    · 
至今单身的橙子  ·  RegQueryValueExW ...·  1 年前    · 

git diff 命令可以对比两个版本的差异,具体来说包括:

  1. 本地工作区和暂存区的diff信息:git diff 或者 git diff file
  2. 暂存区和版本库的diff信息(使用git add 将工作区修改保存到了暂存区后):git diff --cached
  3. 版本库中不同commit、分支的diff信息(使用git commit 将暂存区修改提交到了版本库):git diff commit1 commit2 或 git diff branch1 branch2

技巧 :一般将要对比的分支/commitid名字放到第二个参数,这样对比起来比较直观。

1、分支diff:

1)基本操作

  • git diff branch1 branch2 --stat //--stat参数,显示两分支简单diff信息
  • git diff branch1 branch2 //显示两分支详细的diff信息
  • git diff branch1 branch2 path //显示两分支指定路径下文件的详细diff信息
  • git diff branch1 branch2 file_name(带路径) //显示两分支指定文件的详细diff信息

注:这里的分支可以是本地的,也可以是远程的(git diff branch1 origin/branch2)

2)查看当前目录和另外一个分支的差别:

我们都知道,正常情况下只有我们用commit命令提交到了版本库,才可以使用git diff branch1 branch2 命令来查看分支间的diff信息。

有的时候我们在工作区开发完(可以保存到暂存区),不想提交到当前分支的版本库中,想查看一下其他分支和我当前改动的diff信息,然后再确定是否要提交到版本库中,该如何做呢?可以使用如下命令:查看当前目录和另外一个分支的差别(当前目录未提交到版本库)

git diff branch

然后使用commit将暂存区修改提交到版本库,就可以使用git diff master test_3查看了:

2、版本的diff:

git diff commitid1 commitid2

上述命令可以查看不同提交的差异。

我们都知道HEAD(大写)可以理解成当前分支的最新提交,HEAD^表示上一个提交(也可以写成HEAD~1),HEAD~n表示当前分支前n次提交。

由于commitid是一个32位的串比较难书写,可以使用HEAD来简单代替:

1. git diff 用来比较文件之间的不同,其基本用法如下: (1) git diff :当工作区有改动,临时区为空, diff 的对比是“工作区与最后一次commit提交的仓库的共同文件”;当工作区有改动,临时区不为空, diff 对比的是“工作区与暂存区的共同文件”。 (2) git diff --cached 或 git diff --staged:显示暂存区(已add但未commit文件)和最后一次... git diff 用来比较文件之间的不同,其基本用法如下。 git diff :显示工作目录(working tree)与索引区(即暂存区快照,index,就是 git add过的)之间的文件变更,即显示未被add的文件变更。 git diff --cached 或 git diff --staged:显示索引区和最后一次commit(HEAD)之间的文件更改,即显示已add但还未commit的文... Git 中的 diff 命令 可以显示文件之间的差异,同时-r选项可以遍历两个树对象,同时显示它们的差异。从 Git 中的对象类型上看,一个树对象值只代表版本库中的一个目录层级,它包含该目录下的直接文件和它的所有直接子目录的信息,但不包括所有子目录的完整内容。而树对象引用所有子目录的树对象,所以对应项目根目录的树对象实际上代表某个时刻的整个项目,因此也可以说, git diff 遍历两棵树。存在三个可供树或类树对象使用 git diff 命令 的基本来源:通常情况下, git diff 命令 进行树的比较时可以通过提交名,分支名或标签 一、 git diff git diff HEAD – < file> 用法介绍 首先明确: git 相较于其他版本控制系统的优越性,在于管理和跟踪的是修改,而不是文件。我们引入 git diff 来说明。 下面是工作区和暂存区的工作示意图 工作区:即用户桌面上的可见可操作目录。 版本库 = 暂存区(stage) + 分支区(master) 一、 git diff 命令 使用时涉及的概念 workspace:是本地项目的工作目录,属于本地代码发生更新但尚未执行 git add 命令 时的状态,working tree的状态也随之更新 index:是索引文件,它是连接working tree和commit的桥梁,每当我们使用 git add 命令 来登记后,index file的内容就会改变,此时index file就和working tree同步了 local repository:是本地仓库,当我们使用 git commit 命令 提交最新代码时,代码才真正进 git diff 是一条知道但是……从来没有用过的指令,基本上这也算是好好学习一下这条指令了。以前一般都是在 merge/rebase 的时候被动的看一下两个分支的变化,或者是在 VSCode 里面看一下 staged 的变化,不过这还是稍微有一点局限,比如说:除此之外,如果想要看两个不同分支的区别,以前基本上都是切换到另一条分支然后开始看区别。不过也提到了,如果两个分支都修改了同一个文件(这也是经常会发生的事情),那基本上……就是创建第三条分支,然后 merge 两个分支。 平时我们在本地开发时,一般都是通过 gui 工具( git 图形化工具)查看文件差异,也就是文件变动内容。但是,我们可能会在线上服务器临时改一些小东西去排查 bug,此时就用不了这些 gui 工具了,那么就可以通过这个 命令 查看我们改动的内容。修改前的文件: 从第 140 行开始显示 3 行,也就是显示 140~142 行。修改后的文件: 从第 140 行开始显示 5 行,也就是显示 140~144 行。100644: 100 代表是普通文件,644 指的是文件权限。查看文件差异(默认查看所有文件的差异) Git 是一种分布式版本控制系统,被广泛应用于软件开发中,为开发人员提供了一种管理和协作代码的方式。作为一个开发人员,掌握 Git 的基本 命令 是必不可少的。以下是 Git 常用 命令 总结,使用表格形式展示。 命令 描述 git init 初始化仓库 git add [file] 添加文件到暂存区 git commit -m "[message]" 提交代码到本地仓库 git status 查看工作区和暂存区状态 git diff 查看工作区和暂存区文件差异 git log 查看提交历史 git branch 查看分支 以上是 Git 常用 命令 的简单介绍,但实际上 Git 还有很多高级用法和操作,需要根据实际情况灵活运用。掌握 Git 基本 命令 可以让开发人员更好地管理和协 git init 把当前的目录变成可以管理的 git 仓库,生成隐藏. git 文件。 git add 文件/(* 目录内所有文件) 将文件添加到暂存区去。 git commit –m “提交注释<必填>” 提交文件 –m 后面的是注释。 git status 查看仓库状态 git diff 文件 查看XX文件修改了那些内容 git log 查看历史记录 git reset --hard HEAD^ git reset --hard HEAD git 文件版本号 回退到上一个版本 git add 第一次执行会出警告:warning: LF will be replaced by CRLF in readme.txt. The file will have its original line endings in your working directory. 警告处理:需要配置用户信息 git config user.name = "zhangsan" git config user.email = "itheima@gmail.com" 4. 提交到本地版本库里。 git commit 5. 推送到远程共享版本库中 git push origin master 6. 切换用户,拉取最新的文件 git pull 7. 查看仓库当前状态 git status 8. 查看修改了什么内容 git diff