Archive for the ‘Dicas rápidas’ Category
Reorganizando meus projetos no Github me deparei com o problema de ter criado muitos branches locais e remotos e tudo estava uma grande bagunça. Os comandos que me ajudaram a resolver isto foram:
Dado os branches locais
macos-snow ~/project (master) git branch * master fix_counter rails3-version
Para criá-los remotamente use
macos-snow ~/project (master) git push --all
Ou para um branch específico
macos-snow ~/project (master) git push origin rails3-version
Para apagar branches locais
macos-snow ~/project (master) git branch -D rails3-version
Para apagar branches remotos
macos-snow ~/project (master) git push origin :rails3-version
Renomear branches locais
macos-snow ~/project (master) git branch -m old_branch new_branch
As referências que encontrei para renomear branches remotos não me foram úteis por isso fiz da forma mais prática renomeando o branch local, enviando para repositório e apagando o branch remoto antigo.
Referências:
- Help Github
- Git ready
Esses dias configurei meus sistemas operacionais para usar RVM que serve para gerenciar diferentes instalações do Ruby na mesma máquina.
Para instalar no Snow Leopard segui o tutorial do Akita “Limpando meu Ambiente de Desenvolvimento” e para instalar no Ubuntu segui o post do Barenko “Preparando o Ubuntu para múltiplos ambientes Ruby utilizando RVM” que é mais ou menos uma “tradução” do post do Akita para Ubuntu. Deixei tudo igual com exceção da linha onde tem “/var/lib/gems/1.8/bin/rvm-install” que alterei para
~/rvm-install
Porém como eu uso Git uma coisa que estava me incomodando é que o prompt do Bash em ambos SO não estavam adequados para mostrar a versão da RVM e o branch atual do Git ao mesmo tempo, então fiz algumas e alterações e encontrei algumas “frescuras a mais” para personalizar o prompt.
Substitua a linha que começa com “expost PS1=’….” no arquivo ~/.bashrc (Ubuntu) ou ~/.bash_profile (MacOS) para:
sudo gedit ~/.bashrc
export PS1='\[\033[38m\]\u\[\033[32m\] \w \[\033[1;33m\]`~/.rvm/bin/rvm-prompt i v `\[\033[0;31m\] `git branch 2> /dev/null | grep -e ^* | sed -E s/^\\\\\*\ \(.+\)$/\(\\\\\1\)\ / `\[\033[37m\]$\[\033[00m\] '
Com isto o prompt ficará assim
seu_usuario ~/projetos/blog ruby-ree ( working ) $
Segue uma tabela com as cores existentes, se você quiser deixar a fonte em negrito use 1; ao invés de 0;
"\033[0;32m" "\033[1;32m"
Cores
corPadrao=”\033[0m”
preto=”\033[0;30m”
vermelho=”\033[0;31m”
verde=”\033[0;32m”
marrom=”\033[0;33m”
azul=”\033[0;34m”
purple=”\033[0;35m”
cyan=”\033[0;36m”
cinzaClaro=”\033[0;37m”
amarelo=”\033[0;33m”
branco=”\033[1;37m”
Aproveitando que este post é sobre RVM, se alguém tiver dificuldades em rodar o script/console dentro de algum ambiente de RVM dá uma olhada neste post que tem uma solução para este problema.
Referências:
Limpando meu Ambiente de Desenvolvimento
Preparando o Ubuntu para múltiplos ambientes ruby utilizando RVM
http://ubuntuforums.org/archive/index.php/t-31247.html
http://www.vivaolinux.com.br/dica/Shell-script-com-texto-colorido
No dia-a-dia utilizar recursos das ferramentas certas ajudam a agilizar nosso trabalho, tratando-se de controle de versões o Git tem diversos truques interessantes. Vou resumir de forma rápida alguns comandos que utilizo diariamente, a idéia é concentrar aqui novas dicas que forem aparecendo, então sugestões são bem vindas.
INSTAWEB
Um dos comandos mais úteis e interessantes que tenho utilizado ultimamente para fazer revisão de código ou para ter um histórico do projeto é o “instaweb” que inicia um servidor local onde podemos navegar (http://127.0.0.1:1234/?p=.git;a=shortlog) pelos commits e verificar as diferenças do repositório de uma forma bem simples e clara. É importante lembrar que ao subir o serviço o terminal fica liberado sendo necessário parar o servidor após utilizar senão o processo continuará “rodando”.
git instaweb --httpd webrick git instaweb --httpd webrick --stop
STASH
O comando “stash” é útil quando estamos trabalhando em algum código que ainda não está concluído e precisamos atualizar o projeto com as últmas atualizações, então colocamos nossas alterações em área isolada com git stash, atualizamos o projeto e aplicamos novamente nossas alterações com git stash apply. Exemplo:
git stash git stash apply
AMEND
O comando “amend” é utilizado para corrigir ou re-editar a mensagem do último commit desde que ele não tenha sido enviado para o repositório. Exemplo:
git commit -m "Alguma mensagem errada" git commit --amend -m "Correção da mensagem"
GREP
Com “grep” encontramos palavras dentro dos arquivos do projeto, combinado com -n é possível saber em qual linha a palavra ou o conjunto delas foi encontrado.
git grep -n "palavra ou frase procurada"
RESET
Reset pode ser utilizado basicamente para duas situações, uma delas é desfazer um commit mantendo as alterações realizadas no código com “–soft” e para desfazer um commit completamente incluindo as alterações com “–hard”. Exemplo:
git reset --soft HEAD~1 git reset --hard HEAD~1
LOG
Temos diversas formas para verificar os logs de commits do projeto, abaixo alguns tipos de formatações para exibí-los. O último “shortlog” mostra a quantidade de commits do projeto.
git log --pretty=oneline --graph --all git log --pretty=oneline --abbrev-commit git whatchanged -n 1 git shortlog -s -n
Para complementar, uma dica para mostrar o branch atual no terminal. No arquivo ~/.bashrc no Ubuntu ou ~/.bash_profile no MacOS inclua as linhas abaixo, feche o terminal e abra novamente para que as alterações sejam aplicadas.
export PS1="\[\033[38m\]\u\[\033[32m\] \w \[\033[31m\]\`ruby -e
\"print (%x{git branch 2> /dev/null}.grep(/^\*/).first ||
'').gsub(/^\* (.+)$/, '(\1) ')\"\`\[\033[37m\]$\[\033[00m\] "
O terminal ficará assim:
user ~/projects/blog (master) $
Referências:
http://gitready.com/
http://book.git-scm.com/
http://learn.github.com/p/intro.html
http://book.git-scm.com/4_tracking_branches.html
http://cheat.errtheblog.com/s/git
http://book.git-scm.com/4_ignoring_files.html



