Idea本地文件说明
- Idea左边的项目,是工作区,新建的文件是红色,Add之后文件变绿色,此时表示放到暂存区,commit到本地库,文件变黑色。
- Push时手动勾选文件,避免全部提交。(有一些pom或者yml配置是不需要的)
版本回退
Version Control —> Log —> Reset Current Branch to Here…
四种回退
Commit到本地库后,此时可以回退,有四种。一般使用Hard
Soft:文件不改变,不同文件会暂存(变绿色,保存在暂存区)
Mixed:文件不改变,不同文件不会被暂存
Hard:文件恢复到选中状态,删除不同文件(文件消失)
Keep:文件恢复到之前状态,但会保存不同文件版本冲突
本地修改完毕之后push到远程时,远程文件已经被修改。此时需要先处理冲突问题。
建议每次push之前先pull,没问题再提交。
Commit Message格式
示例:feat(pencil): add ‘graphiteWidth’ option
一次Commit后Message格式规范,分成Header,Body 和 Footer三部分。Header可直接在页面中预览。
其中,Header 是必需的,Body 和 Footer 可以省略。
不管是哪一个部分,任何一行都不得超过72个字符(或100个字符)。这是为了避免自动换行影响美观。
Header
Header部分只有一行,包括三个字段:type(必需)、scope(可选)和subject(必需)。
<空行> <空行> |
---|
Type
用于说明 commit 的类别,只允许使用下面7个标识。
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style:格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
Scope
用来说明本次Commit影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。这个本来是选填项,但从AngularJS实际项目中可以看出基本上也成了必填项了。
Subject
subject是 commit 的简短描述,不超过50个字符。最好遵循下面三条:
- 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
- 首字母不要大写
-
Body
对subject里内容的展开,在此做更加详尽的描述,内容里应该包含修改动机和修改前后的对比。
为什么这个变更是必须的? 它可能是用来修复一个bug,增加一个feature,提升性能、可靠性、稳定性等等
- 他如何解决这个问题? 具体描述解决问题的步骤
- 是否存在副作用、风险?
Footer
主要放置不兼容变更和Issue关闭的信息,还有就是如果commit的信息不符合格式我们可以启动.git/hooks/pre-commit.sample文件,可以根据自己的commit需求的格式来编写hooks脚本来执行客户端验证Revert
还有一种特殊情况,如果当前 commit 用于撤销以前的 commit,则必须以revert:开头,后面跟着被撤销 Commit 的 Header。
revert: feat(pencil): add ‘graphiteWidth’ option This reverts commit 667ecc1654a317a13331b17617d973392f415f02. |
---|
Body部分的格式是固定的,必须写成This reverts commit <hash>.,其中的hash是被撤销 commit 的 SHA 标识符。