Idea本地文件说明

  1. Idea左边的项目,是工作区,新建的文件是红色,Add之后文件变绿色,此时表示放到暂存区,commit到本地库,文件变黑色
  2. Push时手动勾选文件,避免全部提交。(有一些pom或者yml配置是不需要的)

    版本回退

    Version Control —> Log —> Reset Current Branch to Here…
    四种回退
    Commit到本地库后,此时可以回退,有四种。一般使用Hard
    Soft:文件不改变,不同文件会暂存(变绿色,保存在暂存区)
    Mixed:文件不改变,不同文件不会被暂存
    Hard:文件恢复到选中状态,删除不同文件(文件消失)
    Keep:文件恢复到之前状态,但会保存不同文件

    版本冲突

    本地修改完毕之后push到远程时,远程文件已经被修改。此时需要先处理冲突问题。
    建议每次push之前先pull,没问题再提交。
    04_补充-idea操作git - 图1

    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个字符。最好遵循下面三条:

  1. 以动词开头,使用第一人称现在时,比如change,而不是changed或changes
  2. 首字母不要大写
  3. 结尾不用句号(.)

    Body

    对subject里内容的展开,在此做更加详尽的描述,内容里应该包含修改动机和修改前后的对比。

  4. 为什么这个变更是必须的? 它可能是用来修复一个bug,增加一个feature,提升性能、可靠性、稳定性等等

  5. 他如何解决这个问题? 具体描述解决问题的步骤
  6. 是否存在副作用、风险?

    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 标识符。