Feb
6
2016
Git porcelain has improved a lot, it still has a couple of rough spots. Here are a couple of git aliases that make my git workflow more pleasant:
-
Dealing with aliases
1
2
3
4
5git config --global --add alias.add-alias \
'!f() { git config --global --add alias.$1 "$2"; }; f'
git add-alias aliases 'config --get-regexp ^alias'
git config --global --add alias.rm-alias \
'!f() { git config --global --unset alias.$1 ; }; f' -
Basic shortcuts
1
2
3
4
5
6
7
8
9git add-alias stat status
git add-alias co checkout
git add-alias ci commit
git add-alias br branch
git add-alias fa 'fetch --all'
git add-alias pullff 'pull --ff-only'
git add-alias pullrb 'pull --rebase'
git add-alias rbi 'rebase -i'
git add-alias bi bisect -
Informational
1
2
3
4
5
6git add-alias root 'rev-parse --show-toplevel'
git add-alias wb 'rev-parse --abbrev-ref HEAD'
git add-alias desc 'describe --dirty --abbrev=40'
git add-alias bll 'branch -vv --list'
git add-alias where \
'! echo "* HEAD:" $(git desc); git bll $(git wb)' -
Branches
1
2
3
4git add-alias bup-om \
'branch --set-upstream-to origin/master'
git add-alias cob 'checkout -b'
git add-alias cot 'checkout -b -t' -
Fundamental settings
1
2
3
4
5git config --global --add push.default simple
git config --global --add core.ui true
git config --global --add core.whitespace \
trailing-space,space-before-tab,tab-in-indent
git config --global --add merge.conflictstyle diff3Of course you must set user.email and user.name. If signing of commits is desired then set user.signingKey.
Oct
19
2013
Previously… Useful bash functions
This new version is a tad more efficient since there are no more echo and pipes involved on the processing. Just one eval and one awk script.
1
2
3
4
5
6
7
8
9
10
11
12 unique_path() {
eval $(awk -v VAR="${1}" 'BEGIN { \
if((N=split(ENVIRON[VAR],vals,":"))<2) exit(0); \
sep = out="" ; i=split(out,seen); \
do { if(!(vals[++i] in seen)) { seen[vals[i]]; \
gsub("["]","\\"",vals[i]); \
out=sprintf("%s%s%s",out,sep,vals[i]); \
sep=":"; \
} } while (i<N); \
printf "%s="%s"; export %s;\n",VAR,out,VAR; \
}' /dev/null)
}
Similarly, these also had remove unnecessary uses of sub-shell echo…
1
2
3
4
5
6
7
8
9
10
11 safe_prepend_path() {
VAR=$1 ; shift ; eval VAL=\$${VAR}
for i_;do [ -d "$i_" ] && VAL=$i_${VAL:+":$VAL"} ;done
eval export ${VAR}=${VAL}
}
safe_append_path() {
VAR=$1 ; shift ; eval VAL=\$${VAR}
for i_;do [ -d "$i_" ] && VAL=${VAL:+"$VAL:"}$i_ ;done
eval export ${VAR}=${VAL}
}
Sep
1
2012
If you are like me, you have regular conference calls where you have to send some bridge identification number or profile to sign in.
On a Nokia N9 it’s really not obvious how to set up a contact that automatically sends those digits after the call is connected, especially if you use the Swype virtual keyboard.
The first thing to know is that in order to specify a pause separation for the digits you need to enter a ‘p’. To me this was a surprise, as I was used to other cellphones which used the comma (‘,’), semi-colon (‘;’) or period (‘.’) for the same purpose, sometimes with different pause intervals
If you have swype, when you enter a phone number here is what the screen looks like the image below, a numeric pad virtual keyboard. You disregard the currency symbols and try to enter either the comma or the period and they don’t work.
What you need to do is to tap the bottom ABC button so that it switches to the main alphanumeric virtual keyboard and then you can enter the ‘p’.
![]() |
![]() |
You have the stock virtual keyboard things are a little simpler, you tap the ‘‘ and notice how it becomes red underlined, tap again and it becomes a ‘+’ and again… the ‘p’ finally. The three taps have to be in quick succession.
![]() |
![]() |
![]() |
![]() |
You must be logged in to post a comment.