diff --git a/plugins/git/README.md b/plugins/git/README.md index 46c36548a..789711ac4 100644 --- a/plugins/git/README.md +++ b/plugins/git/README.md @@ -255,6 +255,7 @@ receive further support. | `git_develop_branch` | Returns the name of the “development” branch: `dev`, `devel`, `development` if they exist, `develop` otherwise | | `git_main_branch` | Returns the name of the main branch: `main` if it exists, `master` otherwise | | `grename ` | Renames branch `` to ``, including on the origin remote | +| `gcbc` | Copies the current branch name to the system clipboard (uses `clipcopy`) | | `gbda` | Deletes all merged branches | | `gbds` | Deletes all squash-merged branches (**Note: performance degrades with number of branches**) | diff --git a/plugins/git/git.plugin.zsh b/plugins/git/git.plugin.zsh index 16568f222..d4ef8e386 100644 --- a/plugins/git/git.plugin.zsh +++ b/plugins/git/git.plugin.zsh @@ -159,6 +159,14 @@ alias gbg='LANG=C git branch -vv | grep ": gone\]"' alias gco='git checkout' alias gcor='git checkout --recurse-submodules' alias gcb='git checkout -b' +function gcbc() { + local branch=$(git branch --show-current 2>/dev/null) || return + if [[ -z "$branch" ]]; then + print -u2 "gcbc: not on a branch" + return 1 + fi + print -rn -- "$branch" | clipcopy +} alias gcB='git checkout -B' alias gcd='git checkout $(git_develop_branch)' alias gcm='git checkout $(git_main_branch)'