Nova seção: Cheat sheets
As cheat sheets são ótimas para você não esquecer daqueles comandos que precisa usar. Já fazia algum tempo que eu estava pensando em criar um cheat sheet sobre git. Ainda tem comandos que não utilizo com frequência e aí precisava sempre olhar o man. Agora criei um pequeno cheat sheet, mas que será atualizado sempre que eu precisar fazer alguma coisa no git e não lembrar do comando. Vai ser ler no man page e atualizar a cheat sheet.
Espero que também seja útil para vocês!
2 comentários : 06.02.2009 10:33 PM
Git Cheatsheet
Criar um novo branch remoto
git push origin origin:refs/heads/nome-do-branch
Começar a trabalhar localmente no branch remoto recém criado
git checkout --track -b nome-do-branch origin/nome-do-branch
Apagar um branch remoto do clone local (Na documentação do git eles são chamados de remote-tracking branches. No próximo fetch ou pull eles serão recriados.)
git branch -d -r origin/nome-do-branch
Apagar um branch do repositório remoto
git push origin :nome-do-branch // não esquecer dos ":" na frente do nome do branch
Apagar um branch local
git branch -d nome-do-branch
Refazer o último commit
Supondo que você fez um commit, mas por acaso esqueceu de fazer o git add em um arquivo. Faça o git add no arquivo e depois execute:
git commit --amend
O último commit será refeito com as alterações que você fez após ele.
Merge entre o master e um remote-tracking branch
git merge master origin/nome-do-branch
Salvar mudanças temporariamente para poder fazer um rebase ou pull
git stash save
Restaurar as mudanças salvas anteriormente
git stash apply
Limpar a lista de stash(mesmo após aplicar ele continua salvo)
git stash clear
Enviar as tags locais para o repositório remoto
git push --tags
Apagar uma tag remota
git push origin :refs/tags/nome-da-tag
Apagar todas as mudanças não comitadas até o momento (deixa o seu branch limpo, mas não apaga arquivos novos que nunca foram comitados)
git checkout -f
Fazer um ‘git rm’ arquivo por arquivo pode ser chato. E as vezes você não pode usar o ‘git add -u’ senão ele atinjirá arquivos que você não deseja
git ls-files --deleted | xargs git rm
Remover referência a branchs remotos já apagados
git remote prune origin
0 comentários : 06.02.2009 09:32 PM
Disabling my public svn
I disabled my public svn. I only had apache installed in my vps because of svn and it’s not making sense anymore with GitHub. So my public projects are now there.
0 comentários : 15.09.2008 01:06 PM
Litespeed como proxy para o Apache servir SVN
No vps estou utilizando Litespeed como servidor web. Neste link estão disponíveis vários tutoriais para configuração básica do Litespeed, então não vou entrar neste mérito, pois não iria acrescentar nada mais do que já está lá.
O Litespeed é um ótimo servidor web para projetos Rails. Fácil de instalar e usar, com interface web para configurar TUDO que existe nele, consome muito pouca memória, aguenta o tranco de conexões simultâneas etc — não sei o que as pessoas ainda fazem perdendo tempo configurando Apache + mongrel_cluster, pois o Litespeed resolve isso muito bem sem utilizar mongrel.
Ele tem um problema. Não serve SVN como o Apache faz. Mas ele é um servidor web completo e possui opções para fazer proxy. A solução então é configurar um Apache rodando em uma porta diferente da 80 e fazer o Litespeed direcionar certas urls para o Apache. Assim:
Primeiro é necessário adicionar uma “External App”. Na página principal de administração do Litespeed clicar em “Configuration”, em “External App” e por último em “Add”.


A seguir selecione “Web Server” e dê “Next”. Agora preencha um nome para esse Web Server — eu usei apache_local — e no campo Address preencha o url do seu servidor web: ip_ou_host:porta. Os demais campos são tunning, configure como desejar. Basta salvar.

Agora abra a aba de configuração do seu virtual host (vai depender se você está utilizando templates ou não) e clique na aba “Context” e depois em “Add”. Selecione “Proxy” e dê “Next”.

Agora preencha a “URI” e selecione o “Web Server” já configurado. O campo “URI” representa o caminho acessado no seu site e que será direcionado para o “Web Server” nesse mesmo “URI”. Não pesquisei sobre como direcionar para o “Web Server” em um caminho diferente.

Agora é só reiniciar o Litespeed. O svn em http://mergulhao.info/svn/ está funcionando dessa maneira.
0 comentários : 03.05.2008 01:38 AM
Movendo um repositório SVN
Anteriormente eu utilizava hospedagem compartilhada no Dreamhost, mas eu mudei a pouco tempo atrás. Gerenciava meus repositórios pelas ferramentas do Dreamhost. Agora no vps precisei aprender uns truques a mais. Antes eu tinha minhas coisas públicas espalhadas por alguns repositórios. Agora juntei tudo num só e foi mais fácil do que pode parecer:
svnadmin dump caminho_para_o_repositorio > repositorio.dump
O caminho_para_o_repositorio é o caminho físico (e não a url de acesso ao svn, logo é preciso estar logado na máquina onde está o repositório) e repositorio.dump é o nome do arquivo do dump. Agora é só:
svnadmin load caminho_para_o_repositorio_destino < repositorio.dump
Com isso você leva todo o conteúdo de um repositório para o outro. E é por isso que agora meu repositório svn público está de volta ao ar:
http://mergulhao.info/svn/
1 comentário : 02.05.2008 11:54 PM
'git revert' não é o mesmo que 'svn revert'!
Acabei de atualizar o blog para a última versão do Mephisto, a 0.8, que foi lançada recentemente. Não entendi até agora por que a notícia não saiu no site oficial do Mephisto, mas isso é outro problema. Agora o scm do projeto é o git, que foi inicialmente desenvolvido pelo Linus Torvalds, o mesmo que criou o kernel do Linux.
Uma coisa que me chamou atenção foi o fato do ‘git revert’ não fazer nada semelhante ao que o ‘svn revert’ faz. O comando:
git revert HEAD
É um undo do último commit! Para fazer um revert como estamos acostumados no svn, deve-se fazer:
git reset --hard HEAD
Assim será feito revert de todas as modificações depois do último commit. Estranho que não achei a opção para fazer em um arquivo específico, como se faz no svn. Caso utilize:
git reset --hard HEAD nome_do_arquivo
É retornado:
Cannot do partial --hard reset.
Pesquisando um pouco descobri uma maneira razoável de realizar o revert svn-like:
git checkout nome_do_arquivo
É diferente, mas não é difícil de usar. Por enquanto o git está aprovado.
0 comentários : 19.02.2008 12:20 AM





