Skip to content

Instantly share code, notes, and snippets.

@KerryJones
Last active August 29, 2015 14:23
Show Gist options
  • Save KerryJones/3c321cbe6a0281d5e419 to your computer and use it in GitHub Desktop.
Save KerryJones/3c321cbe6a0281d5e419 to your computer and use it in GitHub Desktop.
Aliases
[alias]
brr = branch -r
br = branch
ci = commit -m
cia = commit -a -m
amend = commit --amend -C HEAD
co = checkout
cob = checkout -b
st = status -sb
me = merge --no-ff
fo = fetch origin
pu = push origin
ds = diff --staged
unci = reset HEAD
undo = reset --soft HEAD^
hash = log --pretty=format:'%h' -n 1
ls = log --pretty=format:'%C(yellow)%h %C(blue)%ad%C(red)%d %C(reset)%s%C(green) [%cn]' --decorate --date=short
longhash = rev-parse HEAD
standup = log --since '1 day ago' --oneline --author [email]
standup-week = log --since '1 week ago' --oneline --author [email]
graph = log --graph --pretty=format':%C(yellow)%h%Cblue%d%Creset %s %C(white) %an, %ar%Creset'
hotfix = !sh ../gitscripts/hotfix.sh
merge-hotfix = !sh ../gitscripts/merge-hotfix.sh
merge-release = !sh ../gitscripts/merge-release.sh
conflicts = diff --name-only --diff-filter=U
latest = for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]'
#!/bin/bash
# Make sure we're on the master branch
git co master
# Get the version
master_version=`git show | grep -n -e 'Merge branch' | sed "s/^[^-]*-\([0-9.]*\)'/\1/g"`
# Determine next version number
if [ ${#master_version} == 5 ]
then
new_version=$master_version.1
else
new_version=`echo $master_version | perl -ne 'chomp; print join(".", splice(@{[split/\./,$_]}, 0, -1), map {++$_} pop @{[split/\./,$_]}), "\n";'`
fi
# Create Hotfix
git cob hotfix-$new_version
#!/bin/bash
hotfix_version=`git branch | grep -n -e 'hotfix' | sed 's/^[^-]*-//g'`
release_version=`git branch | grep -n -e 'release' | sed 's/^[^-]*-//g'`
git co master
git me hotfix-$hotfix_version
git tag -a $hotfix_version -m "Hotfix $hotfix_version"
git co release-$release_version
git me hotfix-$hotfix_version
git push origin master
git push origin --tags
git push origin release-$release_version
git branch -d hotfix-$hotfix_version
#!/bin/bash
inc()
{
shopt -s extglob
num=${release_version//./}
let num++
re=${release_version//./)(}
re=${re//[0-9]/.}')'
re=${re#*)}
count=${release_version//[0-9]/}
count=$(wc -c<<<$count)
out=''
for ((i=count-1;i>0;i--)) ; do
out='.\'$i$out
done
sed -r s/$re$/$out/ <<<$num
}
release_version=`git branch | grep -n -e 'release' | sed 's/^[^-]*-//g'`
new_version=$(inc)
git co master
git me release-$release_version
git tag -a $release_version -m "Release $release_version"
git co development
git me release-$release_version
git cob release-$new_version
git push origin master
git push origin --tags
git push origin development
git push --set-upstream origin release-$new_version
git push origin :release-$release_version
git branch -d release-$release_version
@KerryJones
Copy link
Author

Replace "[email]" with your github email address.

Put the three bash scripts in a "gitscripts" folder.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment