git

其中两个重要概念 对象和引用

文件blob,文件夹tree,和提交commit都是对象

对象使用哈希引用 可能imply了对象是不可变的

引用是映射到哈希的可读名字

引用是可变的

常见的引用有master 主分支的最新commit

head当前观察的commit

git diff将当前目录的内容和head作比较

git branch -f
强制将一个分支移动到指定位置

git merge
在当前分支创建一个新节点,它同时指向指定分支和当前分支的节点
推进当前分支

git rebase

将当前分支移动到指定分支的后继

git checkout
head一般是和当前分支的最新提交指在一起的

通过checkout某次提交可以改变head

git reset和git revert后跟提交

vendorig

限制死项目的依赖使用的版本

CI(continuous integration)

github action

在收到pull request时自动进行测试

提交时进行语法检查

github仓库上可以看到的小徽章

github pages自动构建博客

testsuite

所有测试的集合

unit test

测试功能模块

integration test

测试功能模块组合能否正确工作

regression test

测试过去的错误

mocking

忽略一部分不需要关注的部分

替换成虚拟实现