git命令讲解之git diff详细修改信息与git commit提交

579 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 N 天,点击查看活动详情

检查文件详细修改信息git diff

用于显示具体的文件修改信息。能通过文件补丁的格式更加具体地显示哪些行发生了改变。

若是指定文件查看修改信息时,明明路径没问题但就是会报如下错 image.png

应该按照提示在文件前加上--选项。这是因为由于有这样的命令git diff [branch] [--] [file...]所以仅仅写文件路径git无法区分这段字符是文件路径还是版本号,所以使用这个选项来进行区分,当出现这个选项之后,下面所有的选项都会被认为是文件路径。

image.png

  • git diff [file...]查看指定的暂存区的文件与工作区已修改状态的文件的差异,当使用该命令后,会显示第一行差异,之后每按一次任意键会多显示出一行差异,直到全部显示完以(END)作为结尾。之后可以按q退出显示。

    • 若是删除文件./test1/test2/test21.txt,则该命令显示image.png
    • 若是更改test.txt内容则会显示:image.png
    • 若是增加了一个文件由于文件处于未跟踪状态,所以此时的文件还没有被git获知,所以git diff并不会显示该文件的变化。
  • git diff --cached | staged [--] [file...]查看暂存区和上一次提交的差异

  • git diff HEAD集合了上面两个命令的输出

  • git diff --stat显示差别的简略摘要

  • git diff [first-branch]...[second-branch] [--] [file...]显示两个提交间的差异【使用git reflog可以获取提交以及上传内容的版本号】

image.png

image.png

  • git diff [branch] [--] [file...]查看工作区与具体某个版本之间的 指定文件名的文件差异

提交文件git commit

作用

在提交文件之前,首先要确保要提交的内容已经存放在暂存区中,因为提交只会提交暂存区的内容。而提交就是相当于对项目在做一次快照,并上传。

git commit

使用git commit [file...]之后,git将会开启编辑器让你输入此次提交的提交信息。提交信息中的首行若是以#开头,则该行在提交时会被忽略,

当提交后会出现下图中的内容

image.png

其中,中括号中的第一个单词为提交的分支名称,第二个单词为SHA-1校验和。括号外面与括号同一行的内容为提交信息。下一行为提交的改变。

-a添加所有已跟踪文件

git commit [file...]使用-a选项时,它是将所有处于已跟踪状态的文件提交,但是未跟踪的文件并不会被提交。

而且编辑器仍旧会进入编辑模式,让你输提交信息。

下图为我提交未跟踪文件时的截图

image.png

-m直接提供提交信息

git commit [file...] -m 提交信息

提交信息其实就是本次提交的备注信息。这种写法的好处就是,不用再进入编辑器了

句末语

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 N 天,点击查看活动详情