欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Git命令(向仓库中添加 commit)

程序员文章站 2022-03-09 19:16:39
...

git add

git add 命令用于将文件从工作目录移到暂存区,可接受多个文件名(用空格分隔)。

$ git add <file1> <file2><fileN>

要将所有文件提交到仓库中,首先需要将这些文件从工作目录移到暂存区。我们将使用 git add 命令将这三个文件移到暂存区。

Git命令(向仓库中添加 commit)

运行 git add 命令没有任何输出(同样也没有错误),我们可以通过 git status 来查看添加的文件发生了什么变化。

Git命令(向仓库中添加 commit)

Changes to be committed 区域显示了位于暂存区的文件!目前只显示了 index.html 文件,因此暂存区只有这个文件。

git rm --cached <file>... ,不会破坏任何属于你的文件,它只是从暂存区删掉了文件。

Git命令(向仓库中添加 commit)

git add . 其中的 . 指代当前目录,可以用来表示所有文件和目录(包括所有嵌套文件和目录!)。使用该命令可以暂存剩余的文件。

Git命令(向仓库中添加 commit)

git commit

为了进行确认,我们需要在提交 commit 之前再次快速运行下 git status,以确保项目是我们预期的状态。

配置代码编辑器

$ git config --global core.editor <your-editor's-config-went-here>

起步 - 初次运行 Git 前的配置 (git book)

git commit 命令会取出暂存区的文件并保存到仓库中,该命令将打开配置中指定的代码编辑器,在代码编辑器中:

  • 必须提供提交说明
  • # 开头的行是注释,将不会被记录
  • 添加提交说明后保存文件
  • 关闭编辑器以进行提交

然后使用 git log 检查你刚刚提交的 commit!

这里我将通过命令 git config –global core.editor vim 设置 Git 的默认编辑器为 vim。然后在 git commit 命令后会进入 vim 编辑器:

Git命令(向仓库中添加 commit)
在该编辑器中我们需要掌握一些命令:

  • vim 编辑器中,按 i 进入编辑模式
  • Esc 回到锁定模式
  • 锁定模式下按 : 进入命令模式
  • 命令模式下输入 quit 不保存退出 write 保存不退出 wq 保存退出。

在编辑模式下命令:

  • 快速定位到当前段落(编辑内容区域)开头:{
  • 快速定位到当前段落结尾:}
  • 复制一段文本,并粘贴:复制:y(yank);粘贴:p(paster);
  • 删除几行:删除 dd,删除 N 行:光标所处行输入 Ndd,删除包括光标所处行以下的三行;
  • 快速翻页:上翻页:ctrl+b,下翻页:ctrl+f,上翻半页:ctrl+u,下翻半页:ctrl+d
  • 查找某个字符串:查找第一个出现该字符串的地方:/ + 字符串,然后回车;
    查找最后一个该字符串出现的地方:? + 字符串,然后回车;
  • 移动光标:k:上;j:下;h:左;l:右;
  • 移动多行:nk:向上移动 n 行;nh:向左移动 n 列;j 和 l 类似;
  • 到最开头:gg
  • 到最后一行:shift + g
  • 缩进和删除缩进:缩进:shift + > + > 删除缩进:shift + < + <

现在保存文件并关闭编辑器窗口(wq),回到终端:

Git命令(向仓库中添加 commit)

关闭代码编辑器后的终端,显示了新 commit 的 SHA 以及关于该 commit 的信息。例如被添加的文件以及添加了多少行代码。

使用 -m 选项绕过编辑器

如果你要编写的提交说明很简短,不想等打开代码编辑器后再输入信息,可以直接在命令行中使用 -m 选项传入信息:

$ git commit -m "Initial commit"

在上述示例中,文本”Initial commit”被作为提交说明信息。但是注意,不能为 commit 提供信息的描述(description),只能提供信息部分(message)

我们使用 git add 向暂存区添加了新建的文件,同样的,我们也能使用同一命令将修改的文件暂存

commit 中应该包含什么内容?

关键在于使每个 commit 都有其侧重点。每个 commit 应该记录一项更改。这种说法可能比较主观(完全没问题),但是每个 commit 应该只对项目的一个方面做出更改。

良好的提交说明

在编写好的提交说明时,需要注意以下几个事项:

建议

  • 消息篇幅简短(少于 60 个字符)
  • 解释提交的作用(不是如何更改或为何更改!)

禁忌

  • 请勿解释为何做出了这些更改
  • 请勿解释如何进行了更改
  • 请勿使用单词”and”
  • 如果你必须使用 “and”,则你的提交说明可能进行了太多的更改,将这些更改拆分为独立的 commit

最重要的是,在编写提交说明时保持一致性!

解释原因

在编写提交说明时,第一行是消息本身。消息之后空一行,然后输入正文或说明,包括关于为何需要该 commit 的原因详情(例如 URL 链接)。提交说明的详情描述部分包含在 git log 中。

Git命令(向仓库中添加 commit)

具体样式要求可以参考 git 提交说明样式指南

get diff

git status 将告诉我们哪些文件更改了,但是不会显示到底是什么样的更改。git diff 命令用来查看已经执行但是尚未 commit 的更改

Git命令(向仓库中添加 commit)

如上图所示,git diff 命令会显示:

  • 已经修改的文件
  • 添加/删除的行所在的位置
  • 执行的实际更改

git diff 文档

为 git 添加忽略文件

.gitignore 文件用来告诉 git 不应跟踪的文件。该文件应该放在 .git 目录所在的目录。

通配符允许你使用特殊的字符来表示某些格式/字符。在 .gitignore 文件中,你可以使用:

  • 空白行作为空格
  • # - 将行标记为注释
  • * - 与 0 个或多个字符匹配
  • ? - 与 1 个字符匹配
  • [abc] - 与 a、b 或 c 匹配
  • ** - 与嵌套目录匹配 - a/**/z 与以下项匹配(a/z,a/b/z,a/b/c/z)

Git命令(向仓库中添加 commit)

忽略文件

相关标签: git命令