Some bash functions for git
Here some git related functions in my .bachrc
. Is mostly a backup for me, but it might also be useful for someone else.
Cloning a git repo
Because I usually clone repos from my github account, this is a shortcut that allows me to just type clone *repo_name*
and it will create the URL.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | function clone { if [ $# -eq 0 ]; then echo "Please enter repo name or full url:" ; read repo; clone $repo ; elif [[ $1 == --help ]] || [[ $1 == --h ]] || [[ $1 == --? ]]; then echo "This will clone a git repo." ; echo "" ; echo "Option 1: You can just provide the name, eg:" ; echo "$ clone membership" ; echo "This will do: git clone https://github.com/phillip-kruger/membership.git" ; echo "" ; echo "Option 2: Provide the full URL" ; echo "This will do: git clone https://github.com/smallrye/smallrye-rest-client.git" ; else if [[ $1 == https: //* ]] || [[ $1 == git://* ]] || [[ $1 == ssh://* ]] ; then URL= $1 ; else fi echo git clone "$URL" ; git clone "$URL" ; fi } export -f clone |
Usage:
clone *reponame*
– this will go to my github account

clone *url*
– clone the repo at the url

clone
– will ask for the repo name or url

Syncing your fork to upstream
If you contribute to projects, and you are working against your own fork, this is a handy way to keep you fork in sync with changes in the upstream master.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 | function sync { if git remote -v | grep -q 'upstream' ; then echo "upstream exist" ; else echo "Please enter the upstream git url:" ; read url; git remote add upstream "$url" fi git remote -v git fetch upstream git pull upstream master git checkout master git rebase upstream/master } export -f sync |

Commit
Normal commit
, but adding -s
to include your signature.
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 | function commit { if [ $# -eq 0 ]; then echo "Please enter a commit message:" ; read msg; commit "$msg" ; elif [[ $1 == --help ]] || [[ $1 == --h ]] || [[ $1 == --? ]]; then echo "This will commit changes to a local git repo, eg:" ; echo "$ commit 'some changes made'" ; echo "This will do: git commit -s -m 'some changes made'" ; else echo git commit -s -a -m "$1" git commit -s -a -m "$1" ; fi } export -f commit |

Published on System Code Geeks with permission by Phillip Krüger, partner at our SCG program. See the original article here: Some bash functions for git Opinions expressed by System Code Geeks contributors are their own. |