Gitlab lernt einige Git-Spezifikationen kennen, die häufig von Unternehmen verwendet werden

青灯夜游
Freigeben: 2023-04-01 08:30:02
nach vorne
1667 Leute haben es durchsucht

Gitlab lernt einige Git-Spezifikationen kennen, die häufig von Unternehmen verwendet werden

Wie das Sprichwort sagt: Es gibt keine Regel ohne Regeln, und auch unser Git muss standardisiert werden.

Im Folgenden werden einige gängige Standards vorgestellt, die von Unternehmen verwendet werden.

Spezifikationen für die Zweigstellenverwaltung

Die Benennung von Zweigstellen darf nicht seltsam sein, es muss eine einheitliche Benennungsmethode geben. Es gibt hauptsächlich Folgendes:

Branch Management Namenskonvention Erklärung
Master Master. Branch Master Stable Versionszweig, online abgeschlossen Nach der Rückkehr, zusammengeführt aus dem Release-Zweig vom technischen Projektleiter und getaggt mit
test test branch test/yyyyMMdd_ Beispiel für einen Funktionsnamen: test/20220426_blog Tester verwenden den Zweig und werden während des Testens aus dem Feature-Zweig zusammengeführt
feature Feature-Entwicklungszweig feature/yyyyMMdd_ Featurename_Verantwortliche Person Beispiel: feature/20220426_blog_xiumubai Neuer Feature-Entwicklungszweig, basierend auf Master
Fix Bug Repair Branch fix/yyyyMMdd_ Featurename_Verantwortliche Person Beispiel::fix/20220426_b log_xiumubai Notfall-Online-Fehlerbehebung mithilfe eines auf Master basierenden Zweigs
Release-Online-Zweig Beispiel für Release-/Versionsnummer: Release/0.1.0 Der für den Online-Zweig verwendete, auf Master basierende Zweig darf erst nach Codeüberprüfung verwendet werden Kann der zusammenzuführende Funktionszweig online zusammengeführt werden? Das Bild ist ein Entwicklungsflussdiagramm basierend auf Git-Spezifikationen:

Spezifikationen für Informationen übermitteln

Abschließend müssen Sie beim Festschreiben die Festschreibungsinformationen angeben und das Präfix hinzufügen

Erklärung

FeatureFixesDokumenteDokumentationsänderungenstyleCodeformatRefactor Refactor perfLeistungsoptimierungTestTest hinzufügenZurücksetzenRollbackBuildPaketAufgabenBauprozess- oder Hilfswerkzeugänderungen

下图是vue3源码的提交信息规范:

下面我们就实际操作一下,如果通过husky+commitlint集成一个统一规范的git commit信息。

配置 git 提交的校验钩子

  • husky: git提交时触发hooks
  • commitlint: 对提交的内容做规范校验 husky,主要对pre-commit和commit-msg钩子做校验。
# 安装husky
yarn add husky -D
# 初始化husky配置,在根目录新增.husky配置文件。初始化配置pre-commit
npx husky-init 
# 另外新增一个hooks,commit-msg
npx husky add .husky/commit-msg
Nach dem Login kopieren

目录结构是下面这样子的:

commit-msg文件中添加 npm run commitlint

pre-commit文件中有个npm run test我们先注释掉,不然会报错。

安装commitlint

# 添加依赖文件
yarn add @commitlint/config-conventional @commitlint/cli -D
Nach dem Login kopieren

添加配置文件,新建commitlint.config.js,然后添加下面的代码:

module.exports = {
  extends: ['@commitlint/config-conventional'],
  // 校验规则
  rules: {
    'type-enum': [
      2,
      'always',
      [
        'feat',
        'fix',
        'docs',
        'style',
        'refactor',
        'perf',
        'test',
        'chore',
        'revert',
        'build',
      ],
    ],
    'type-case': [0],
    'type-empty': [0],
    'scope-empty': [0],
    'scope-case': [0],
    'subject-full-stop': [0, 'never'],
    'subject-case': [0, 'never'],
    'header-max-length': [0, 'always', 72],
  },
}
Nach dem Login kopieren

配置scripts

因为我们需要运行npm run commitlint,所以需要在package.json文件中添加如下代码:

# 在scrips中添加下面的代码
{
"scripts": {
    "commitlint": "commitlint --config commitlint.config.js -e -V"
  },
}
Nach dem Login kopieren

配置结束,现在当我们填写commit信息的时候,前面就需要带着下面的subject

'feat',
'fix',
'docs',
'style',
'refactor',
'perf',
'test',
'chore',
'revert',
'build',
Nach dem Login kopieren

比如:git commit -m "feat: test",注意feat:后面有个空格

我们来写一个错误的来测试一下:

提示subject是空的。

使用正确的提交方式,提交成功了

使用 commitizen 做git规范化提交

由于添加了commitlint验证,对于不熟悉提交规范的新手同学会有一定影响,可以添加 commitizen 工具,手动生成规范化commit。

Commitizen是一个格式化commit message的工具。

# 工具安装
yarn add -D commitizen
Nach dem Login kopieren

使用cz-conventional-changelog

安装工具

yarn add cz-conventional-changelog -D
Nach dem Login kopieren

配置命令

"script": {
    "commit": "cz"
}
Nach dem Login kopieren

在package.json 中添加定义commitizen使用规则,

{
	"config": {
    "commitizen": {
      "path": "./node_modules/cz-conventional-changelog"
    }
  },
}
Nach dem Login kopieren

当执行git commit的时候,就可以提示我们填写代码规则了

自定义 commitizen 规则

使用 cz-customizable 工具

# 安装依赖
yarn add cz-customizable -D
Nach dem Login kopieren

配置命令

"script": {
    "commit": "git-cz"
}
Nach dem Login kopieren

在package.json 中添加自定义commitizen,使用git-cz执行git commit命令

"config": {
    "commitizen": {
        "path": "./node_modules/cz-customizable"
    }
}
Nach dem Login kopieren

在根目录创建的.cz-config.js, 自定义commit提示内容

module.exports = {
  types: [
    { value: 'feat', name: '✨feat:     新功能' },
    { value: 'fix', name: '?fix:      修复' },
    { value: 'docs', name: '✏️docs:     文档变更' },
    { value: 'style', name: '?style:    代码格式(不影响代码运行的变动)' },
    {
      value: 'refactor',
      name: '♻️refactor: 重构(既不是增加feature,也不是修复bug)'
    },
    { value: 'perf', name: '⚡️perf:     性能优化' },
    { value: 'test', name: '✅test:     增加测试' },
    { value: 'chore', name: '?chore:    构建过程或辅助工具的变动' },
    { value: 'revert', name: '⏪️revert:   回退' },
    { value: 'build', name: '?️build:    打包' },
    { value: 'ci', name: '?CI:   related changes' }
  ],
  // override the messages, defaults are as follows
  messages: {
    type: '请选择提交类型(必选):',
    // scope: '请输入文件修改范围(可选):',
    customScope: '请输入修改范围(可选):',
    subject: '请简要描述提交(必填):',
    // body: '请输入详细描述(可选,待优化去除,跳过即可):',
    // breaking: 'List any BREAKING CHANGES (optional):\n',
    footer: '请输入要关闭的issue(待优化去除,跳过即可):',
    confirmCommit: '确认使用以上信息提交?(y/n/e/h)'
  },
  // used if allowCustomScopes is true
  allowCustomScopes: true,
  // allowBreakingChanges: ['feat', 'fix'],
  skipQuestions: ['body', 'footer'],
  // limit subject length, commitlint默认是72
  subjectLimit: 72
}
Nach dem Login kopieren

当我们提交代码的时候,需要先git add .,然后执行npm run commit,就可以根据响应的提示填写commit信息 了,如下图所示:

(学习视频分享:编程基础视频

Neue Funktionen Fixes

Das obige ist der detaillierte Inhalt vonGitlab lernt einige Git-Spezifikationen kennen, die häufig von Unternehmen verwendet werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage