Git使用
Git是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小到大的项目。Git 易于学习,占用空间小,性能快如闪电。它凭借廉价的本地分支、方便的暂存区域和多个工作流程等功能。
1.安装
略
2.命令
去这里练习!!!
如果想要熟练掌握工作用的git flow使用,务必熟练掌握merge
、rebase(rebase -i)
、reset
、cherry-pick
、checkout(switch)
、tag
、stash
的使用!!!
3.git 工作流程
3.1 Git Flow
- 主干分支
- 稳定分支
- 开发分支
- 补丁分支
- 修改分支
3.2 GitHub Flow
- 创建分支
- 添加提交
- 提交 PR 请求
- 讨论和评估代码
- 部署检测
- 合并代码
3.3 GitLab Flow
- 带生产分支
- 带环境分支
- 带发布分支
4.git commit规范
1 |
|
4.1 所有的 type 类型如下:**
feat: 新增 feature
fix: 修复 bug
docs: 仅仅修改了文档,比如 README, CHANGELOG, CONTRIBUTE等等
style: 仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复 bug
perf: 优化相关,比如提升性能、体验
test: 测试用例,包括单元测试、集成测试等
chore: 改变构建流程、或者增加依赖库、工具等
revert: 回滚到上一个版本
4.2 Examples
1 |
|
1 |
|
1 |
|
5.git tips
5.1 git log
对于码农来说git log是自然熟悉不过的了,但是每天面对git log原始的日志格式,你是不是觉得很烦人啊,因为上面的给的信息太不人性化了,而且我相信大部分的码农的提交日志都是随心所欲的
1 |
|
不过很显然上面的命令有点长,没关系,我们可以给上面的命令添加一个别名,的日志的时候只需要输入git lg就可以,git lg -p 可查看详细信息。如下:
1 |
|
5.2 rebase -i
日常开发中,我们为了完成一个功能或者特性,提交很多个 commit 记录。但是在最后,提交 PR 之前,一般情况下,我们是应该整理下这些提交记录的。有些 commit 需要合并起来,或者需要将其删除掉,等等。
序号 | 选项列表 | 对应含义 |
---|---|---|
1 | p/pick | 使用这个commit记录 |
2 | r/reword | 使用这个commit记录,并且修改提交信息 |
3 | e/edit | 使用这个commit记录,rebase时会短暂的允许你修改这个commit |
4 | s/squash | 使用这个commit记录,但是会与上一个commit合并 |
5 | f/fixup | 和squash相同,但是不会保留commit时候提交的信息 |
6 | x/exec | 执行其它shell命令 |
7 | d/drop | 移除这个commit记录 |
1 |
|
5.3 git commit –amend
有时候提交之后,我们才发现提交的历史记录中存在这一些问题,而这个时候我们又不想新生成一个 commit 记录,且达到一个修改的目录。即,修改之前的 commit 提交记录。
1 |
|
5.4 找回代码
如何找回我们丢失的内容和记录?
我们之前说过,使用下面命令回退内容、强制推送代码、删除本地分支,都是非常危险的操作,因为重置之后我们就没有办法在找到之前的修改内容了
1 |
|
其实 Git 给我们留了一个后门,就是使用 relflog 命令来找回之前的内容,只不过是相对来说麻烦一些。而原理也很简答,就是在我们使用 Git 命令操作仓库的时候,Git 偷偷地帮助我们把所有的操作记录了下来。
1 |
|