日志规范
1 2 3 4 5 6
| <type>[optional scope]: <description>
[optional body]
[optional footer(s)]
|
每次提交,Commit message 都包括三个部分:Header,Body 和 Footer。
其中,Header 是必需的,Body 和 Footer 可以省略。
Header
Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
type
type用于说明 commit 的类别,只允许使用下面7个标识。
1 2 3 4 5 6 7
| feat:新功能(feature) fix:修补bug docs:文档(documentation) style: 格式(不影响代码运行的变动) refactor:重构(即不是新增功能,也不是修改bug的代码变动) test:增加测试 chore:构建过程或辅助工具的变动
|
如果type为feat和fix,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。
master主分支打Tag
创建标签
git tag -a tag1 -m “我是tag1描述”
推送标签
git push origin tag1
删除本地标签
git tag -d tag1
删除远程标签
git push origin :refs/tags/tag1
合并commit提交记录
如果我们想合并远程仓库提交记录, 则
- 首先查看当前的日志记录, 假设下边的是我们的提交记录, 我们要将这5条合并为1条记录。
git log
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| commit 475bd3f60cb8fd3b92370744014e45eb11ee7e61 (HEAD -> ai6, origin/ai6) Author: cuishiying <idea360@foxmail.com> Date: Wed Feb 3 13:56:45 2021 +0800
feat: 模板和模块添加颜色
commit a2bc0f34ff0a0d9cc1139b2929a18c081dd357f6 Author: cuishiying <idea360@foxmail.com> Date: Thu Jan 28 18:44:00 2021 +0800
refactor: 基本数据类型改包装数据类型
commit 5bba947340d452e98669f7b6648e3118314c3384 Author: cuishiying <idea360@foxmail.com> Date: Thu Jan 28 18:43:23 2021 +0800
refactor: 基本数据类型改包装数据类型
commit 4bbd4ae9203697dba5da40ff27d43b313491b15a Author: cuishiying <idea360@foxmail.com> Date: Thu Jan 28 18:02:00 2021 +0800
refactor: 基本数据类型改包装数据类型
commit 4b19e6f5dfafdf9bba4469eb0304984fafdb1516 Author: cuishiying <idea360@foxmail.com> Date: Thu Jan 28 17:58:18 2021 +0800
refactor: 基本数据类型改包装数据类型
|
- git rebase -i HEAD~5
1 2 3 4 5 6 7
| pick 4b19e6f refactor: 基本数据类型改包装数据类型 pick 4bbd4ae refactor: 基本数据类型改包装数据类型 pick 5bba947 refactor: 基本数据类型改包装数据类型 pick a2bc0f3 refactor: 基本数据类型改包装数据类型 pick 475bd3f feat: 模板和模块添加颜色
# Rebase 2f248c1..475bd3f onto a2bc0f3 (5 commands)
|
修改第2~6行的第一个单词 pick 为 squash or s, 然后保存退出
- pick 的意识是要执行这个 commit
- squash 的意识是这个 commit 会被合并到前一个 commit
修改结果为
1 2 3 4 5 6 7
| pick 4b19e6f refactor: 基本数据类型改包装数据类型 squash 4bbd4ae refactor: 基本数据类型改包装数据类型 squash 5bba947 refactor: 基本数据类型改包装数据类型 squash a2bc0f3 refactor: 基本数据类型改包装数据类型 squash 475bd3f feat: 模板和模块添加颜色
# Rebase 2f248c1..475bd3f onto a2bc0f3 (5 commands)
|
- 接着会弹出合并后新的提交记录,修改为我们想提交的commit
1 2 3 4
| # This is a combination of 5 commits. # This is the 1st commit message:
refactor: 1. 基本数据类型保卫包装数据类型;2. 模板和模块添加颜色属性
|
- 同步到远程仓库
git push -f
暂存本地修改
merge和rebase
rebase使用场景:
首先我们从dev分支拉取了记录。假设我们在dev-aaa分支修改了记录, 其他人修改了dev-bbb并合并到了dev分支, 那么dev和dev-aaa这两个分支各自"前进"了。
此时如果merge操作则会在合并代码后有1条merge记录。
如果rebase则会将dev-aaa的提交追加到dev-bbb的提交之后。(dev-aaa的代码进行了commit, 尚未push)
1 2 3 4
| 1. git rebase dev 2. 解决冲突并 git add . 3. git rebase --continue 完成本地仓库的rebase合并 4. git push推送到远端仓库
|
查看分支树
1
| git log --oneline --graph --decorate --all
|
删除分支
1 2 3 4 5
| // delete branch locally git branch -d localBranchName
// delete branch remotely git push origin --delete remoteBranchName
|
最后
本文到此结束,感谢阅读。如果您觉得不错,请关注公众号【当我遇上你】,您的支持是我写作的最大动力。
参考