git 比较差异与查看修改内容

说明

以下命令可以不指定 <filename>,表示对全部文件操作。 命令涉及和 Git本地仓库对比的,均可指定 commit 的版本。

  • HEAD 最近一次 commit
  • HEAD^ 上次提交
  • HEAD~100 上100次提交
  • commit版本是每次提交产生的哈希值

另外顺序问题也需注意

git diff commitId1 commitId2

展示的是commitId2相对于commitId1的修改,即在commitId1的基础上的修改内容

工作区 vs 暂存区

查看文件在工作目录与暂存区的差别。如果还没 add 进暂存区,则查看文件自身修改前后的差别。也可查看和另一分支的区别。

git diff <filename>

暂存区 vs 本地仓库

查看已经 add 进暂存区但是尚未 commit 的内容同最新一次 commit 时的内容的差异。 也可以指定仓库版本

git diff --cached <filename>

工作区 vs 本地仓库

git diff <commit> <filename>

查看工作区同本地仓库指定 commit 的内容的差异。 <commit>=HEAD 时:查看工作目录同最近一次 commit 的内容的差异。

git diff HEAD^

这个命令用的比较多,显示上一次提交之前工作目录与最新git仓库之间的差异。有两个用处:

  1. 在 pull后,可以查看拉下来的文件有哪些具体修改。
  2. 查看最新一次提交记录的修改内容

Git本地仓库 vs Git本地仓库

Git仓库任意两次 commit 之间的差别。

git diff <commit> <commit>

分支 vs 分支

#显示出所有有差异的文件的详细差异
git diff <branchA> <branchB>

#比较当前分支时可省略
git diff <目标分支>

# 比较A分支中有B分支没有的提交记录
git log branchA ^branchB    

#显示出branch1和branch2中差异的部分
git diff branch1 branch2 --stat

#生成一个.diff文件记录所有差异
git diff [branchA] [branchB] >>d:/diff/exportname.diff

查看已提交未推送的提交记录

git cherry origin -v

查看提交记录的具体修改

git show commtId
posted @ 2021-02-24 10:07  至安  阅读(1300)  评论(0编辑  收藏  举报