git 比较差异与查看修改内容
说明
以下命令可以不指定 <filename>
,表示对全部文件操作。 命令涉及和 Git本地仓库对比的,均可指定 commit 的版本。
HEAD
最近一次 commitHEAD^
上次提交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仓库之间的差异。有两个用处:
- 在 pull后,可以查看拉下来的文件有哪些具体修改。
- 查看最新一次提交记录的修改内容
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