From 46729abddf42e2064c26dc21e604503fbc5dc352 Mon Sep 17 00:00:00 2001 From: jc <46619361+juancwu@users.noreply.github.com> Date: Tue, 5 Mar 2024 14:30:50 -0500 Subject: [PATCH] add .zshrc git checkout methods --- zsh/.zshrc | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/zsh/.zshrc b/zsh/.zshrc index 9b37732..b7e7d19 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -83,7 +83,7 @@ fcd() { # clone repository # setopt EXTENDED_GLOB -gc() { +cl() { local url=$1 local ghq_dir="$HOME/ghq" @@ -109,6 +109,29 @@ gc() { git clone $url $project_dir } +# fuzzy find branches and switch to selected branch +gc() { + local selected_branch=$(git branch | fzf | sed 's/^[ \*]*//') + + if [ -n "$selected_branch" ]; then + git checkout "$selected_branch" + else + echo "No branch selected" + fi +} + +# fuzzy find remote branches and switch to selected branch +gcr() { + git fetch + local selected_branch=$(git branch -r | fzf | sed -E 's/^([ \*]*origin\/[\ *]*)*//') + + if [ -n "$selected_branch" ]; then + git checkout "$selected_branch" + else + echo "No branch selected" + fi +} + # get branch if available parse-git-branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'