File tree 2 files changed +54
-0
lines changed
2 files changed +54
-0
lines changed Original file line number Diff line number Diff line change
1
+ #! /usr/bin/env bash
2
+
3
+ # shellcheck disable=SC1091 # Not following: ./__assertgitrepo was not specified as input
4
+ # shellcheck disable=SC2086 # Double quote to prevent globbing and word splitting
5
+ # shellcheck disable=SC2155 # Declare and assign separately to avoid masking return values
6
+
7
+ # ensure the command is run in a git repo
8
+ source " ${__CUSTOM_GIT_UTIL} " /__assertgitrepo
9
+ source " ${__CUSTOM_GIT_UTIL} " /__select_remote_branch
10
+ source " ${__CUSTOM_CONSOLE_UTIL} " /__exit_if_empty_str
11
+ source " ${__CUSTOM_CONSOLE_UTIL} " /__common
12
+
13
+ main () {
14
+
15
+ __assertgitrepo
16
+
17
+ local branchName=" $( __select_remote_branch " gswitchremote" " select remote branch to switch to" " exit" ) "
18
+ __exit_if_empty_str " ${branchName} " ${SUCCESS}
19
+
20
+ clear
21
+ git switch " ${branchName} "
22
+ }
23
+
24
+ if [[ $# -gt 0 ]]; then
25
+ # branch name is provided in command line arguments
26
+ git switch " $* "
27
+ exit ${SUCCESS}
28
+ fi
29
+
30
+ main
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+ # shellcheck disable=SC2155 # Declare and assign separately to avoid masking return values.
4
+ # shellcheck disable=SC1091 # Not following: ./fzf_headers/__select_branch_header was not specified as input (see shellcheck -x)
5
+
6
+ source " ${__CUSTOM_GIT_UTIL} " /fzf_headers/__select_branch_header
7
+
8
+ # Usage: __select_remote_branch "gswitchremote" "select remote branch to switch to" "exit"
9
+ function __select_remote_branch() {
10
+
11
+ local cmd=" ${1} "
12
+ local cmdMsg=" ${2} "
13
+ local escAction=" ${3} "
14
+ local HEADER=" $( __select_branch_header " ${cmd} " " ${cmdMsg} " " ${escAction} " ) "
15
+ local branchName=" $( git branch -r --sort=-committerdate | \
16
+ grep -v " \->" | \
17
+ sed ' s/^ origin\///g' | \
18
+ fzf --height=65%\
19
+ --header " ${HEADER} " ) "
20
+
21
+ local rawBranchNameFile=" $( getrawstr " ${branchName} " ) "
22
+ echo " ${rawBranchNameFile} " | xargs -I " {}" echo {} # xargs used to handle "invalid reference" for special characters
23
+ # like ', '#' in branch names
24
+ }
You can’t perform that action at this time.
0 commit comments