Feb
6
2016
A interface de linha de comando do git tem melhorado imenso, mas algumas operações poderiam ter melhor interface. Aqui seguem alguns aliases que tornaram o meu uso de git mais agradável:
-
Para gerir 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' -
Atalhos básicos
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 -
Atalhos informativos
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' -
Opções essenciais
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 diff3
Claro que é obrigatório configurar user.email e user.name. Quando se pretende assinar os commits então também tem que configurar user.signingKey.
Oct
19
2013
Previamente… Funções úteis em bash
Esta nova versão é ligeiramente mais eficiente, porque não existem mais comandos echo e pipes envolvidos no processamento. Apenas um eval e um script awk.
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)
}
Estas funções também foram melhoradas removendo usos desnecessários de sub-shells para 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
Pessoas como eu têm conferências telefónicas regulares em que é necessário enviar digitos para entrar ou activar a conferência.
Num Nokia N9 não é nada óbvio como configurar um contacto para enviar esses digitos automaticamente após a chamada ter sido estabelecida, particularmente se usar o teclado virtual Swype.
A primeira coisa a saber é que para indicar uma pausa no N9 para os digitos é necessário entrar um ‘p’. Para mim isto foi uma surpresa, porque estava habituado a outros telemóveis em que usava a virgula (‘,’), ponto e virgula (‘;’) ou ponto final para isso.
Se está a usar Swype, quando vai entrar um número de telefone, verá algo como a imagem abaixo, um teclado numérico virtual. Primeiro ignora os simbolos monetarios e tenta digitar a virgula ou o ponto, mas não funciona.
O que precisa fazer é usar o botão ABC do fundo, para mudar para o teclado alfanumerico principal e finalmente pode digitar o ‘p’
![]() |
![]() |
Se tem o teclado virtual original isto é um pouco mais simples. Basta premir o ‘‘ e note que fica sublinhado a vermelho, prima de novo e fica um ‘+’ e de novo… e finalmente o ‘p’ aparece. Tem que premir as três vezes em rápida sucessão.
![]() |
![]() |
![]() |
![]() |
You must be logged in to post a comment.