Git – 修改文件

本文介绍修改文件后,如何使用git diff命令比较异同,如何提交到本地仓库。

修改文件

假设项目目录下已有test1.txt文件,修改test1.txt,文件原内容:

test1.txt

修改为:

test1.txt
this is a test file

运行一下git status,将会看到test1.txt被修改了。不过更改只在工作目录中。

可以使用git diff命令,查看工作目录中发生了什么变化:

$ git diff
diff --git a/test1.txt b/test1.txt
index 79fac64..a2de631 100644
--- a/test1.txt
+++ b/test1.txt
@@ -1 +1,2 @@
 test1.txt
+this is a test file

把更改放进暂存区

就像前面章节所做的那样,使用git add test1.txt命令,把test1.txt的更改保存到暂存区。

此时,如果运行git diff命令,会发现输出为空,这是因为git diff只对工作目录中的更改进行操作。

如果想查看暂存区中保存的更改,可以使用git diff --staged命令,将看到与之前相同的diff输出。

再次修改文件

现在,让我们再次修改文件,test1.txt的内容修改如下:

test1.txt
this is a test text file

如果现在运行git status,将看到有2个更改,一个是已经暂存的更改,另一个是刚刚创建的更改(目前只在工作目录中)。

可以运行git diff查看一下,自上次的更改暂存后,发生了什么变化。


$ git diff diff --git a/test1.txt b/test1.txt index a2de631..9001e78 100644 --- a/test1.txt +++ b/test1.txt @@ -1,2 +1,2 @@ test1.txt -this is a test file +this is a test text file

现在,把最新修改保存到暂存区,再次执行git add test1.txt命令。

提交

接下来,我们把暂存区里的更改提交到本地仓库:

git commit -m "add text to test1.txt"

因为描述信息很简短,只写一行,就直接用命令行添加描述信息了。

暂存区中的更改已经全部提交到本地仓库。

提交记录

要查看提交记录,可以使用git log命令。

git中的每个提交都有一个唯一ID(哈希值)标识,可以使用这个ID引用一次提交。

git log会列出所有提交记录,每条记录包含提交哈希值ID、作者和日期,还包含本地仓库的状态,以及关于远程分支的最新本地信息。

执行git log,查看提交记录:

$ git log
commit 968604b1a77f5c4408882a2162b48f5a1906489f (HEAD -> master)
Author: kevinhwu <kevinhwu@qikegu.com>
Date:   Mon Aug 19 16:29:47 2019 +0800

    add text to test1.txt

commit 2af8a1974c88caadfeb238a0b8508269b0e99e35
Author: kevinhwu <kevinhwu@qikegu.com>
Date:   Mon Aug 19 12:57:09 2019 +0800

    add test1.txt

commit e1b9b710a4f4ca900d4fe37b9590f63479fd480d
Author: kevinhwu <kevinhwu@qikegu.com>
Date:   Sun Aug 18 11:55:33 2019 +0800

    Initial commit

可以看到:

  • 有3次提交
  • 最早的是初始化提交,由远程仓库完成
  • 最近2次,正是我们在本教程中完成的2次提交

注意,你的提交哈希值ID实际值,与本文列出的是不一样的。

比较2次提交之间的区别,是常用操作。比较任意2次提交的区别,可以使用命令git diff <from commit> <to commit>,新提交在后。

Kevin@qikegu MINGW64 /g/project/git-demo (master)
$ git diff 2af8a1974c88caadfeb238a0b8508269b0e99e35 968604b1a77f5c4408882a2162b48f5a1906489f
diff --git a/test1.txt b/test1.txt
index 79fac64..9001e78 100644
--- a/test1.txt
+++ b/test1.txt
@@ -1 +1,2 @@
 test1.txt
+this is a test text file

比较某次提交与前次提交的区别,可以使用命令:git diff <commit>^!,这里^!告诉git比较指定提交与前次提交的区别。

现在,更改已经全部提交到本地仓库,可以继续进行git push,把本地仓库的更改推送到远程仓库。

在下面的图中,表示一个文件变更的不同阶段,以及diff命令在各个阶段的使用情况。

图



浙ICP备17015664号-1 浙公网安备 33011002012336号 联系我们 网站地图  
@2019 qikegu.com 版权所有,禁止转载