git-diff

1.diff说明

用于比较两次修改的差异

1-1.参数

参数 描述
–cached 显示暂存区(已 add 但未 commit 文件)和最后一次 commit (HEAD)之间差异。
–staged 同 --cached。
–stat 查看简单的 diff 比较结果。

1-2.改动范围说明

@@ -l,s +l,s @@:其中 l 是起始行号,s 是更改 (c)hunk 应用于每个相应文件的行数。 - 表示原始文件,+ 表示新(修改)文件。请注意,它不仅显示受影响的行,还显示上下文行。

-1,5在原始文件中(用-表示)。它表明第一行是开始和 5 个受影响的/上下文行

+1,9 在新的(修改过的)文件中(由 + 表示),第一行也是开始和 9 个受影响的/上下文行。

git diff

diff --git a/xxx.txt b/xxx.txt
index 74d9274..324b9a6 100644
--- a/xxx.txt
+++ b/xxx.txt
@@ -1,5 +1,9 @@
....

1-3.查看diff概要

 git diff --stat
 
 a3.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

2.使用

2-1.工作区和索引区对比

文件未被git add添加时候

# 查看所有改动在工作区和索引区对比
git diff

# 查看某个文件在工作区和索引区对比
git diff <file_name> 或者 git diff -- <file_name>

# 查看多个文件在工作区和索引区对比
git diff <file_name_1> <file_name_2> 或者 git diff -- <file_name_1> <file_name_2>

2-2.工作区和版本库(commit)对比

文件未被git add添加时候

# 查看所有改动在工作区和指定版本库中的比对
git diff <commit>

# 查看某个文件在工作区和指定版本库中的比对
git diff <commit> -- <file_name>

2-3.暂存区和版本库(commit)对比

文件被git add但未被git commit

# 查看暂存区和上一次提交的最新版本(HEAD)之间的所有文件差异
git diff --cached

# 查看暂存区和指定版本之间的所有文件差异
git diff --cached <commit>

# 查看暂存区和 HEAD 之间的指定文件差异
git diff --cached -- <file_name>

# 查看暂存区和指定版本之间的指定文件差异
git diff --cached <commit> -- <file_name>

2-4.版本库(commit)和版本库(commit)对比

# 查看两个版本之间的差异
git diff <commit_1> <commit_2>

# 查看两个版本之间的指定文件之间的差异
git diff <commit_1> <commit_2> -- <file_name_1> <file_name_2>

# 查看两个版本之间的改动的文件列表
git diff <commit_1> <commit_2> --stat

# 查看两个版本之间的文件夹src的差异
git diff <commit_1> <commit_2> src

3.git diff 没有点、两个点和三个点的区别

3-1.区别

git diff 的参数不是标识范围,就是标识两个commit 之间的差异,跟范围没有关系

和git log 相比,git diff 是两个commit点的比较,不涉及范围,没有点和两个点代表直接比较,三个点代表从merge点开始比较

  • git diff foo bar: 比较 foo 和 bar两个commit点的差别
  • git diff foo..bar:比较 foo 和 bar两个commit点的差别(等同于上面)
  • git diff foo...bar: 比较的foo和bar merge base那个点(最近的共同的parent)和 bar

git-diff

posted @ 2023-07-13 15:05  lxd670  阅读(15)  评论(0编辑  收藏  举报