1. 官網(wǎng)鏈接
2. git 常用命令
//初始化項目倉庫
git init
//管理 Git 倉庫中的遠程倉庫
//新增遠程倉庫
git remote add origin 倉庫地址(建議直接使用 ssh)
//修改指定遠程倉庫的 URL
git remote set-url <remote_name> <new_url>
//刪除
git remote remove <remote_name>
//遠程倉庫重命名
git remote rename <old_name> <new_name>
//分支
//切換分支
git checkout <branch-name>
//創(chuàng)建并切換分支
git checkout -b <branch-name>
//刪除分支
git branch -d <branch-name>
//查看所有分支
git branch -a
//提交
git push origin dev ( -uf 強制推送)
//合并
git merge --on-ff "描述" <其他分支名>
3. 全局安裝commitizen
commitizen
規(guī)范的格式提交Git commit
pnpm install -g commitizen
配置commit message
pnpm install -g cz-conventional-changelog
echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc
- 自定義提交規(guī)范
pnpm i cz-customizable -D
以下配置添加到 package.json中
"config": {
"commitizen": {
"path":"node_modules/cz-customizable"
}
}
終端直接執(zhí)行以下命令
echo "module.exports = {
// 可選類型
types:[
{ value: 'feat', name: 'feat: 新功能'},
{ value: 'fix', name: 'fix: 修復(fù)'},
{ value: 'docs', name: 'docs: 文檔變更'},
{ value: 'style', name: 'style: 代碼格式(不影響代碼運行的變動)'},
{ value: 'refactor', name: 'refactor: 重構(gòu)(既不是增加feature),也不是修復(fù)bug'},
{ value: 'pref', name: 'pref: 性能優(yōu)化'},
{ value: 'test', name: 'test: 增加測試'},
{ value: 'chore', name: 'chore: 構(gòu)建過程或輔助工具的變動'},
{ value: 'revert', name: 'revert: 回退'},
{ value: 'build', name: 'build: 打包'}
],
// 步驟
messages: {
type: '請選擇提交的類型;',
customScope: '請輸入修改的范圍(可選)',
subject: '請簡要描述提交(必填)',
body: '請輸入詳細描述(可選)',
footer: '請選擇要關(guān)閉的issue(可選)',
confirmCommit: '確認要使用以上信息提交肌括?(y/n)'
},
// 跳過步驟
skip: ['body', 'footer'],
// 默認長度
subjectLimit: 72
}" > .cz-config.js
- 安裝配置commitlint
pnpm i -D @commitlint/config-conventional @commitlint/cli
配置commitlint闺属,新建 commitlint.config.js
文件
echo "module.exports = {
extends: ['@commitlint/config-conventional'],
// 定義規(guī)則類型
rules: {
// type 類型定義馏鹤,表示 git 提交的 type 必須在以下類型范圍內(nèi)
'type-enum': [
2,
'always',
[
'feat', // 新功能
'fix', // 修復(fù)
'docs', // 文檔變更
'style', // 代碼格式(不影響代碼運行的變動)
'refactor', // 重構(gòu)(既不是增加feature),也不是修復(fù)bug
'pref', // 性能優(yōu)化
'test', // 增加測試
'chore', // 構(gòu)建過程或輔助工具的變動
'revert', // 回退
'build' // 打包
]
],
// subject 大小寫不做校驗
'subject-case': [0]
}
}" > commitlint.config.js
- 安裝配置husky
pnpm i husky -D
npx husky install
pnpm set-script prepare "husky install"
pnpm run prepare
添加 commitlint
的 hook 到 husky 中,commit-msg
時進行校驗
pnpx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'