Git 文件的修改提交与历史记录查看

本文介绍了如何使用Git管理readme.txt文件,包括添加新内容、查看状态、gitdiff查看改动,以及提交和清理工作流程。通过实例演示了gitstatus和gitdiff命令的运用,帮助读者理解Git在项目管理中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们已经成功地添加并提交了一个readme.txt文件,现在,是时候继续工作了,于是,我们继续修改readme.txt文件,改成如下内容(删除原来的语句,添加如下两行文字):

Git is a distributed version control system.
Git is free software.

现在,运行git status命令看看结果:

$ git status
On branch master
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git checkout – …” to discard changes in working directory)

    modified:   readme.txt

no changes added to commit (use “git add” and/or “git commit -a”)

git status命令可以让我们时刻掌握仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff这个命令看看:

Administrator@KF-20160524SGWJ MINGW32 ~/learngit (master)
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 380bce1…9247db6 100644
— a/readme.txt
+++ b/readme.txt
@@ -1,2 +1,2 @@
-Git is a version control system.
-Git is free software
+Git is a distributed version control system.
+Git is free software.

git diff顾名思义就是查看difference,显示的格式正是Unix通用的diff格式,可以从上面的命令输出看到,我们在第一行添加了一个“distributed”单词。
知道了对readme.txt作了什么修改后,再把它提交到仓库就放心多了,提交修改和提交新文件是一样的两步,第一步是git add:

$ git add readme.txt

同样没有任何输出。在执行第二步git commit之前,我们再运行git status看看当前仓库的状态:

$ git status

On branch master

Changes to be committed:

(use “git reset HEAD …” to unstage)

modified: readme.txt

git status告诉我们,将要被提交的修改包括readme.txt,下一步,就可以放心地提交了:

$ git commit -m “add distributed”
[master ea34578] add distributed
1 file changed, 1 insertion(+), 1 deletion(-)

提交后,我们再用git status命令看看仓库的当前状态:

$ git status

On branch master

nothing to commit (working directory clean)

Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的。

小结
要随时掌握工作区的状态,使用git status命令。
如果git status告诉你有文件被修改过,用git diff可以查看修改内容。

<think>好的,用户的问题是想要通过Git命令查看提交记录中修改文件路径。我需要先回忆一下相关的Git命令,特别是git log的选项。 首先,用户提到的git log的基本用法,比如引用[1]提到git log可以查询版本历史,并且支持一些选项和路径参数。用户需要显示修改文件路径,可能需要用到--stat选项,因为引用[2]说明--stat会显示文件路径,但可能会有截断的问题,这时候可以用--stat=宽度来调整显示宽度。例如git log --stat=200可以显示更长的路径。 另外,用户可能希望更简洁地只显示文件路径,而不是统计信息。这时候可能需要使用--name-only选项,这样每个提交后面会列出修改文件名。不过引用中没有直接提到--name-only,但根据我的知识,这个选项确实存在。例如git log --name-only。 还有,如果需要查看每次提交中新增、修改或删除的文件状态,可以使用--name-status选项。这会显示每个文件的状态,比如A表示添加,M表示修改,D表示删除。这在引用中没有提到,但属于常见的用法。 用户可能还想过滤合并提交,这时候可以使用--no-merges,如引用[3]所述。所以结合使用的话,命令可能是git log --no-merges --name-status。 此外,时间限制的选项如--since和--until(引用[5])也可能有用,如果用户需要按时间范围筛选提交记录。 需要验证这些选项是否正确,特别是--name-only和--name-status是否有效。根据Git文档,这些选项确实存在,所以可以放心推荐给用户。同时,用户提到的路径截断问题,可以通过设置--stat的宽度来解决,比如--stat=200,如引用[2]所示。 总结下来,用户的需求可以通过几种不同的git log选项组合来实现,根据不同的显示需求选择适合的选项。需要将这些方法分点列出,并给出示例命令,方便用户理解和使用。</think>### Git log显示修改文件路径的方法 要查看提交记录中修改文件路径,可以通过`git log`命令结合不同选项实现。以下是具体方法及示例: --- #### 1. **基础文件路径显示** 使用`--stat`选项显示每次提交的**文件路径及修改统计**,但长路径会被截断: ```bash git log --stat ``` - **示例输出**: ``` commit 1a2b3c4d... Author: User <user@example.com> Date: Mon Jan 1 00:00:00 2023 +0800 Update files src/long/path/to/modified/file... | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) ``` - **解决路径截断**:通过`--stat=<width>`指定显示宽度(如200列)[^2]: ```bash git log --stat=200 ``` --- #### 2. **仅显示文件路径** 使用`--name-only`选项**仅列出修改文件名**,适合快速查看: ```bash git log --name-only ``` - **示例输出**: ``` commit 1a2b3c4d... Author: User <user@example.com> Date: Mon Jan 1 00:00:00 2023 +0800 Update files src/path/to/modified_file.txt ``` --- #### 3. **显示文件状态(增/改/删)** 结合`--name-status`选项,显示**文件路径及操作类型**(A: 新增, M: 修改, D: 删除): ```bash git log --name-status ``` - **示例输出**: ``` commit 1a2b3c4d... Author: User <user@example.com> Date: Mon Jan 1 00:00:00 2023 +0800 Update files M src/path/to/modified_file.txt D docs/old_file.md ``` --- #### 4. **过滤合并提交** 若需排除合并提交的干扰,可添加`--no-merges`选项[^3]: ```bash git log --no-merges --name-status ``` --- #### 5. **按时间范围筛选** 结合`--since`和`--until`按时间过滤提交记录[^5]: ```bash git log --since="2023-01-01" --until="2023-12-31" --name-only ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值