首先有一个新文件 COMMIT_EDITMSG,顾名思义,它保存了最新的提交信息。 若直接运行 git commit 未带 -m 参数,git 会启动一个编辑器并加载 COMMIT_EDITMSG 文件,方便用户编辑提交信息。编辑完成后,git 就采用该文件内容作为提交信息。 此外,新增了一个 logs 目录,git 通过它来记录所有的提交变动。在此,你可
#安装 $ npm install validate-commit-msg husky -D #添加package.json文件配置 "husky": { "hooks": { "commit-msg": "validate-commit-msg" } } #自定义校验格式(可选) #添加一个.vcmrc文件,配置对象如下: { "types": ["feat", "fix", "docs", "style", "refactor", "perf", "test", "...
# Please enter the commit message for your changes. Lines starting# with '#' will be ignored, and an empty message aborts the commit.# On branch master# Changes to be committed:# (use "git reset HEAD <file>..." to unstage)## modified: hello.php#~~".git/COMMIT_EDITMSG"9L,257C 如...
首先是一个新文件COMMIT_EDITMSG,它包含了(最新的)提交消息。 如果我们运行git ci命令而没有使用-m标志,那么Git获取提交消息的方式是打开一个文本编辑器,使用COMMIT_EDITMSG文件来让用户编辑提交消息。一旦用户更新了消息并退出编辑器,Git就会使用该文件的内容作为提交消息。 它还添加了一个全新的logs文件夹。这是Git...
COMMIT_EDITMSG:保存着最近一次的提交信息,Git系统不会用到这个文件,只是给用户一个参考。打开文件如下 config。保存当前仓库的配置信息。 description:仓库的描述信息。 HEAD文件:这就是我们常说的HEAD指针,它指向了当前分支。打开后如下: 可以清楚的看到它指向了master分支,有此也可以知道,HEAD实际上是指向分支的,分...
.git/COMMIT_EDITMSG 保存着最近一次的提交信息,git 不会用到这个文件,只是给用户一个参考 .git/FETCH_HEAD 当我们执行git fetch时会自动创建这个文件 执行git pull也会创建这个文件,因为git pull相当于git fetch && git merge FETCH_HEAD 是一个短暂的 ref,用于记录从远程库拉取下来的内容。
「编写Git Hook」: 要编写Git Hook,我们只需创建一个可执行的脚本文件并将其放入.git/hooks目录中。脚本的名称必须与hook类型相匹配(例如,pre-commit)。在脚本中,我们可以执行任何自定义操作,例如检查代码、验证提交消息、运行测试等。 git diff git diff命令后通常需要跟两个参数,参数1是要比较的旧代码,参数2是...
一种是git commit -m 'your message' 另一种是git commit会打开commit-editmsg文件以供编辑message信息 现在的问题是, 打开后(我设定在sublime中打开)在文件里写了相关信息并保存, 接下来怎么办呢? 再执行一次git commit还是打开新的message文件。 2:
pre-commit是第一步,是在用户输入任何message之前就执行的,而后才执行到commit-msg这个文件。而这里面的message实际上是存在了COMMIT_EDITMSG这个文件中了。这里是我参考的一篇文章。从commit-msg的sample中就可以看到,$1就是这个message信息。 在pre-commit中轻松的获取到message信息之后就很简单了,只需要在前期写好...
打开.git的objects文件夹,发现里面又多了一些东西 打开.git的refs文件夹,点开heads文件夹,里面有出现了一个master分支 .git目录下多了一个COMMIT_EDITMSG 我们可以打开他看看,有什么神秘 接着我们打开.git的COMMIT_EDITMSG .git目录还多了一个logs文件夹,里面也有HEAD和refs ...