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

版权声明:如有转载请注明出处 http://blog.csdn.net/modurookie ,谢谢 https://blog.csdn.net/MoDuRooKie/article/details/82022682

git add

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

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

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

git add

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

这里写图片描述

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

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

这里写图片描述

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

这里写图片描述

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 编辑器:

这里写图片描述
在该编辑器中我们需要掌握一些命令:

  • 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),回到终端:

这里写图片描述

关闭代码编辑器后的终端,显示了新 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 提交说明样式指南

get diff

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

这里写图片描述

忽略文件

猜你喜欢

转载自blog.csdn.net/MoDuRooKie/article/details/82022682
今日推荐