浏览代码

feat(git-commit): create plugin (#9646)

Co-authored-by: K. Akatsuki <thevortexspirit@gmail.com>
Oscar Lee-Vermeren 8 月之前
父节点
当前提交
1abc1d998a
共有 2 个文件被更改,包括 59 次插入0 次删除
  1. 36 0
      plugins/git-commit/README.md
  2. 23 0
      plugins/git-commit/git-commit.plugin.zsh

+ 36 - 0
plugins/git-commit/README.md

@@ -0,0 +1,36 @@
+# git-commit plugin
+
+The git-commit plugin adds several [git aliases](https://www.git-scm.com/docs/git-config#Documentation/git-config.txt-alias) for [conventional commit](https://www.conventionalcommits.org/en/v1.0.0/#summary) messages.
+
+To use it, add `git-commit` to the plugins array in your zshrc file:
+
+```zsh
+plugins=(... git-commit)
+```
+
+## Syntax
+
+```zshrc
+git <type> [(-s, --scope) "<scope>"] "<message>"
+```
+
+> ⚠️ Single/Double quotes around the scope and message are required
+
+Where `type` is one of the following:
+
+- `build`
+- `chore`
+- `ci`
+- `docs`
+- `feat`
+- `fix`
+- `perf`
+- `refactor`
+- `revert`
+- `style`
+- `test`
+
+## Examples
+
+`git style "remove trailing whitespace"` -> `git commit -m "style: remove trailing whitespace"`  
+`git fix -s "router" "correct redirect link"` -> `git commit -m "fix(router): correct redirect link"`

+ 23 - 0
plugins/git-commit/git-commit.plugin.zsh

@@ -0,0 +1,23 @@
+_register() {
+  if ! git config --global --get-all alias.$1 &>/dev/null; then
+    git config --global alias.$1 '!a() { if [[ "$1" == "-s" || "$1" == "--scope" ]]; then git commit -m "'$1'(${2}): ${@:3}"; else git commit -m "'$1': ${@}"; fi }; a'
+  fi
+}
+
+aliases=(
+  'build'
+  'chore'
+  'ci'
+  'docs'
+  'feat'
+  'fix'
+  'perf'
+  'refactor'
+  'revert'
+  'style'
+  'test'
+)
+
+for alias in "${aliases[@]}"; do
+  _register $alias
+done