gpt4 book ai didi

git - 为什么 git diff 会根据提交修订产生不同的结果?

转载 作者:太空狗 更新时间:2023-10-29 13:56:28 24 4
gpt4 key购买 nike

我是版本控制领域的新手,刚开始使用 git。当我运行命令 git log

时,我有以下输出
commit 3b33318e20a64f4395bba416fe60f50f9e0002d1
Author: pm
Date: Thu Jan 24 08:42:24 2013 +1300

added fourth line to test1

commit 37f2ce409cdc971958add1fcf6585064f5c0d61d
Author: pm
Date: Thu Jan 24 08:41:24 2013 +1300

first commit

我知道 git log 显示最新提交,然后是上一次提交。现在,如果我运行命令 git diff HEAD HEAD~,我理解为 “显示最新提交与之前提交之间的差异”,我会得到以下输出:

diff --git a/test1 b/test1
index c6f02c2..e41a5e4 100644
--- a/test1
+++ b/test1
@@ -1,4 +1,3 @@
This is a test document
This is the second line in the document
And the third
-Added a fourth line

它在我修改文件 test1 时添加新行的地方显示减号,但是如果我以 git diff HEAD~ HEAD 运行命令,我理解“显示倒数第二个提交和最新提交之间的区别”,它显示以下输出:

diff --git a/test1 b/test1
index e41a5e4..c6f02c2 100644
--- a/test1
+++ b/test1
@@ -1,3 +1,4 @@
This is a test document
This is the second line in the document
And the third
+Added a fourth line

显示我在第四行加了加号

文件的比较方式重要吗?我本以为你比较文件的方式是“比较最新的和以前的”git diff HEAD HEAD~

最佳答案

git diff A B 列出了从 A 到 B 所需的更改。如果交换参数,您将获得相反的更改,如您的示例所示。

您可能会争辩说 Git 可以知道 A 在 B 之前发生,然后为 git diff A Bgit diff B A 生成相同的输出。但是,恕我直言,这不是一个好主意,原因有二:

  1. 从左到右显示 from 到 get 的变化更加一致。它也可以派上用场,尤其是当您在其之上构建脚本时。

  2. 有时不清楚哪个提交在另一个提交之前,例如:

      C
    / \
    A B

    git diff A B:是A先于B还是B先于A?

关于git - 为什么 git diff 会根据提交修订产生不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14488235/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com