# 规范git提交利器指南

# 推荐使用 cz-git

这种提交格式不香吗? 😍

20191022165222.png

# 一、全局安装

npm install -g cz-customizable
npm install -g cz-git
1
2

run

git cz
1

20211102141718

# 二、本地安装

npm install -g cz-customizable
yarn add cz-git -D
1
2

package.json:

{
  "config": {
    "commitizen": {
      "path": "./node_modules/cz-customizable"
    }
  },
}
1
2
3
4
5
6
7

run

git cz
1

# .czrc 自定义配置

{
  "path": "cz-git",
  "alias": {
    "fd": "docs: fix typos"
  },
  "messages": {
    "type": "Select the type of change that you're committing:",
    "scope": "Denote the SCOPE of this change (optional):",
    "customScope": "Denote the SCOPE of this change:",
    "subject": "Write a SHORT, IMPERATIVE tense description of the change:\n",
    "body": "Provide a LONGER description of the change (optional). Use \"|\" to break new line:\n",
    "footer": "List any ISSUES by this change. E.g.: #31, #34:\n",
    "confirmCommit": "Are you sure you want to proceed with the commit above?"
  },
  "types": [
    {
      "value": "feat",
      "name": "✨ feat:     A new feature",
      "emoji": "✨"
    },
    {
      "value": "fix",
      "name": "🐛 fix:      A bug fix",
      "emoji": "🐛"
    },
    {
      "value": "docs",
      "name": "📝 docs:     Documentation only changes",
      "emoji": "📝"
    },
    {
      "value": "style",
      "name": "💄 style:    Changes that do not affect the meaning of the code",
      "emoji": "💄"
    },
    {
      "value": "refactor",
      "name": "💡 refactor: A code change that neither fixes a bug nor adds a feature",
      "emoji": "💡"
    },
    {
      "value": "perf",
      "name": "⚡️ perf:     A code change that improves performance",
      "emoji": "⚡️"
    },
    {
      "value": "test",
      "name": "✅ test:     Adding missing tests or correcting existing tests",
      "emoji": "✅"
    },
    {
      "value": "build",
      "name": "📦️ build:    Changes that affect the build system or external dependencies",
      "emoji": "📦️"
    },
    {
      "value": "ci",
      "name": "🎡 ci:       Changes to our CI configuration files and scripts",
      "emoji": "🎡"
    },
    {
      "value": "chore",
      "name": "🎨 chore:    Other changes that don't modify src or test files",
      "emoji": "🎨"
    },
    {
      "value": "revert",
      "name": "revert:   Reverts a previous commit",
      "emoji": "⏪️"
    }
  ],
  "useEmoji": true,
  "emojiAlign": "center",
  "useAI": false,
  "aiNumber": 1,
  "themeColorCode": "",
  "scopes": [],
  "allowCustomScopes": true,
  "allowEmptyScopes": true,
  "customScopesAlign": "bottom",
  "customScopesAlias": "custom",
  "emptyScopesAlias": "empty",
  "upperCaseSubject": false,
  "markBreakingChangeMode": false,
  "allowBreakingChanges": [
    "feat",
    "fix"
  ],
  "breaklineNumber": 100,
  "breaklineChar": "|",
  "skipQuestions": [
    "body",
    "breaking",
    "footer",
    "footerPrefixesSelect"
  ],
  "issuePrefixes": [
    {
      "value": "closed",
      "name": "closed:   ISSUES has been processed"
    }
  ],
  "customIssuePrefixAlign": "top",
  "emptyIssuePrefixAlias": "skip",
  "customIssuePrefixAlias": "custom",
  "allowCustomIssuePrefix": true,
  "allowEmptyIssuePrefix": true,
  "confirmColorize": true,
  "minSubjectLength": 0,
  "defaultBody": "",
  "defaultIssues": "",
  "defaultScope": "",
  "defaultSubject": ""
}
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114