1、git中commit修改
在Git中,commit是指将文件的变化提交到本地库中的一个操作,同时为该次提交生成一个唯一的hash值,方便以后查找、回溯。但在实际开发中,我们可能需要查看某个commit所做的修改,以便了解代码的变化情况,甚至是追查问题产生的原因。本文将介绍在git中查看commit修改的各种方法。
2、git log命令
2.1 打印提交历史
git log命令是Git自带的一个命令,可以打印出提交历史,包括每次提交的commit ID、作者、时间、注释等信息。
首先,我们进入git所管理的目录,运行git log命令:
$ git log
运行结果如下:
commit c4d2481021c08b0a0b9db80a11d1abb2df81fae6 (HEAD -> master)
Author: GithubUserName <GithubUserEmail>
Date: Sat Apr 17 10:36:14 2021 +0800
commit message
运行git log命令,git会以时间逆序的方式列出所有提交的历史。每条历史记录都包含一个唯一的commit ID,作者的名字和邮箱,以及提交的时间。最后是一个提交的注释,该注释是由用户在提交时填写的。
3.2 查看某个commit的修改
通过git log命令我们可以浏览commit历史,但是如果想查看某个commit具体做了哪些修改,我们可以使用git show命令。
语法:git show [commitID]
如下所示:
$ git show c4d2481021c08b0a0b9db80a11d1abb2df81fae6
运行结果如下:
commit c4d2481021c08b0a0b9db80a11d1abb2df81fae6 (HEAD -> master)
Author: GithubUserName <GithubUserEmail>
Date: Sat Apr 17 10:36:14 2021 +0800
commit message
diff --git a/file1.txt b/file1.txt
index 2287a60..e09d109 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1,2 +1,6 @@
This is file1
+
+add a new line 1
+
+add a new line 2
diff --git a/file2.txt b/file2.txt
index 3f2b423..6e99a3c 100644
--- a/file2.txt
+++ b/file2.txt
@@ -1,2 +1,3 @@
This is file2
+
+add a new line
对于每个修改,git都会显示它们所在的文件、在文件中被修改的位置,并列出修改前的版本和修改后的版本。例如,第一个修改是对file1.txt文件做了3行添加,每个修改都有一个“+”操作符。
3、git diff命令
git diff命令可以将工作目录中的修改和仓库中的历史版本做比较,并显示出差异。可以使用git diff直接查看工作目录与最新版本之间的差异,也可以使用git diff [commitID]查看两个commit之间的差异,甚至可以使用git diff [commitID1] [commitID2]查看两个commit之间的差异。
3.1 查看工作目录与最新版本的差异
在工作目录下,我们可以通过git diff命令来查看工作目录与最新版本的差异:
$ git diff
运行结果如下:
diff --git a/file1.txt b/file1.txt
index 2287a60..e09d109 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1,2 +1,6 @@
This is file1
+
+add a new line 1
+
+add a new line 2
与git show类似,对于某文件的每个修改,git都会显示它们所在的文件、在文件中被修改的位置,并列出修改前的版本和修改后的版本。例如,这个修改是对file1.txt文件做了3行添加,每个修改都有一个“+”操作符。
3.2 查看两个commit之间的差异
我们也可以使用git diff [commitID1] [commitID2]命令来查看两个commit之间的差异:
$ git diff HEAD~1 HEAD
运行结果如下:
diff --git a/file1.txt b/file1.txt
index 2287a60..e09d109 100644
--- a/file1.txt
+++ b/file1.txt
@@ -1,2 +1,6 @@
This is file1
+
+add a new line 1
+
+add a new line 2
diff --git a/file2.txt b/file2.txt
index 3f2b423..6e99a3c 100644
--- a/file2.txt
+++ b/file2.txt
@@ -1,2 +1,3 @@
This is file2
+
+add a new line
这条命令可以查看当前commit和前一个commit之间的差异。在这个例子中,我们运行了一个git diff HEAD~1 HEAD命令。 HEAD表示最新的commit,HEAD~1表示当前commit的前一个commit。因此,我们比较了最新的commit和前一个commit之间的差异。
4、总结
通过以上几种方法,我们可以在Git中查看commit修改,也可以随时回溯代码的历史,了解代码变化,更加高效地进行开发。