您的位置:

如何使用git查看文件修改内容

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。