Git是一个分布式版本控制系统,同时它也是一个强大的代码管理工具。Git带来的一个巨大优势就是可以准确追踪代码修改历史。查看文件修改内容是一个常见的需求,本文将会从多个方面介绍如何使用git查看文件修改内容。
一、初始的文件状态
在开始介绍如何查看文件修改内容之前,我们需要先创建一个初始状态的文件,并且将其提交到Git仓库中。
mkdir git-demo && cd git-demo
echo "Hello, World!" > hello.txt
git init
git add hello.txt
git commit -m "Add hello.txt"
现在,我们有了一个Git仓库,并且仓库中有一个文件hello.txt。
二、查看本地未提交的修改
在本地修改了文件后,我们可以使用git diff命令查看本地未提交的修改。
echo "Hello, Git!" > hello.txt
git diff hello.txt
上述命令将会输出:
diff --git a/hello.txt b/hello.txt
index e69de29..6f8b8bd 100644
--- a/hello.txt
+++ b/hello.txt
@@ -0,0 +1 @@
+Hello, Git!
diff命令的输出非常详细,下面是每个部分的说明:
- diff --git a/hello.txt b/hello.txt:表示文件改动前后的差别
- index e69de29..6f8b8bd 100644:表示文件改动前后的版本号
- --- a/hello.txt:表示文件改动前的版本
- +++ b/hello.txt:表示文件改动后的版本
- @@ -0,0 +1 @@:表示增加/删除的行号
- +Hello, Git!:表示变动的内容
三、查看已提交的修改
如果我们想要查看某一次提交之后的修改,可以使用git diff命令,并指定某一个提交的ID。
echo "Hello, Git and GitHub!" > hello.txt
git add hello.txt
git commit -m "Update hello.txt"
git log
上述命令将会输出当前提交历史:
commit 10283133288bd65c1a4152a84c6f0964a2f062d7 (HEAD -> master)
Author: You
Date: Wed Jun 30 22:00:00 2021 +0800
Update hello.txt
commit d21c5ed13980bf1d76ebf230caae34f309799596
Author: You
Date: Wed Jun 30 21:00:00 2021 +0800
Add hello.txt
接着,我们可以使用git diff命令查看某一次提交之后的修改。
git diff d21c5ed hello.txt
上述命令将会输出:
diff --git a/hello.txt b/hello.txt
index 1944a54..2bf273b 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello, World!
+Hello, Git and GitHub!
与之前的git diff命令输出相似,这里也是展示了文件改动前后的差别、文件改动前后的版本号、文件改动前的版本、文件改动后的版本、增加/删除的行号和变动的内容。
四、查看指定区间的修改
假设我们想要查看某个区间的修改,可以使用git diff命令,并指定两个提交ID。
echo "Hello, Git and GitLab!" > hello.txt
git add hello.txt
git commit -m "Update hello.txt"
git log
上述命令将会输出当前提交历史:
commit 2ac8e025c17f2a60cdaf5bad1ba170b8e3213a35 (HEAD -> master)
Author: You
Date: Wed Jun 30 22:01:00 2021 +0800
Update hello.txt
commit 10283133288bd65c1a4152a84c6f0964a2f062d7
Author: You
Date: Wed Jun 30 22:00:00 2021 +0800
Update hello.txt
commit d21c5ed13980bf1d76ebf230caae34f309799596
Author: You
Date: Wed Jun 30 21:00:00 2021 +0800
Add hello.txt
接着,我们可以使用git diff命令查看某个区间的修改。
git diff d21c5ed 2ac8e025 hello.txt
上述命令将会输出:
diff --git a/hello.txt b/hello.txt
index 2bf273b..888228e 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1 @@
-Hello, Git and GitHub!
+Hello, Git and GitLab!
这里的输出与git diff命令查看已提交的修改的输出类似。
五、查看某一行的修改
如果我们想要查看某一行的修改,可以使用git blame命令查找引入每一行的提交和作者,并使用git show命令查看某一次提交中的修改。
git blame hello.txt
上述命令将会输出某一行的修改历史,例如:
00000000 (Unknown 2021-06-30 21:00:00 +0800 1) Hello, World!
10283133 (You 2021-06-30 22:00:00 +0800 2) Hello, Git and GitHub!
2ac8e025 (You 2021-06-30 22:01:00 +0800 3) Hello, Git and GitLab!
我们可以找到想要查看的行号对应的提交ID。
git show 10283133
上述命令将会输出某一次提交中的所有变更。
六、总结
通过本文的介绍,我们了解了如何在不同场景下使用Git查看文件的修改内容。Git是一个非常强大的代码管理工具,在使用Git的过程中,随时了解代码历史的变化是非常必要的。希望这篇文章可以帮助大家更好地使用Git。