Git: Renomear o branch ‘master’
Publicado; 01/04/2011 Filed under: git, tutorial | Tags: git, git-branch, git-checkout, git-push Comentários desativadosDigamos que seu projeto vai ganhar uma reescrita, uma refatoração pesada, atualização do framework (rails 2 para rails 3) ou qualquer coisa que vá mudar o rumo do seu código de forma revolucionária. Enfim, cria-se um novo branch e começa a brincadeira. Neste tempo, seu master continua com atualizações, com correções de bugs, novos features, enfim, sua aplicação ainda está viva. Quando terminado o processo de refatoração, o merge com o branch principal, normalmente o master, acaba sendo uma dor de cabeça e a opção adotada algumas vezes é tornar o branch de refactoring no branch principal. Para este caso, vou explicar como renomear o branch de refactoring para o master e, claro, guardar o master para poder fazer ‘a caça as bruxas’ depois. Vou usar como base que estamos atualizando a versão do Rails 2 para Rails 3.
1. Vá para um branch qualquer, se não tiver, crie um;
$ git branch temp
$ git checkout temp
2. Renomear o branch master para rails2;
$ git branch -m master rails2
3. Renomear o branch de rails3 para o master;
git branch -m rails3 master
4. Remover o branch master remoto;
$ git push origin :master
5. Criar o branch master no repositório remoto;
$ git push origin master:refs/heads/master
6. Criar o branch rails2 no reposotório remoto;
$ git push origin rails2:refs/heads/rails2
7. Remover o branch rails3 no repositório remoto;
$ git push origin :rails3
Pronto, teoricamente quando a galera fizer o git pull, pegará o novo branch, mas eu recomento que remova o branch master local de cada máquina e pegar novamente;
$ git branch temp
$ git checkout temp
$ git branch -d master
$ git checkout -b master origin/master
Fontes:
http://www.dmo.ca/blog/20080307124544/
http://www.kernel.org/pub/software/scm/git/docs/git-branch.html
http://www.kernel.org/pub/software/scm/git/docs/git-checkout.html
http://www.kernel.org/pub/software/scm/git/docs/git-push.html
como remover branch remoto no git
Publicado; 07/03/2011 Filed under: git | Tags: git, git-branch, git-push, git-remote Comentários desativadosEsse post é mais para lembrete, pois muitas vezes esqueço como remover um branch remoto, enfim…
Tem o modo que é inesquecível, pelo menos para mim:
git push <repository> :<branch>
git push origin :old_branch_to_be_deleted
Mas caso você queira remover um branch que tenha o mesmo nome de uma TAG, temos a seguinte resposta de retorno:
$ git push origin :v0.2.1 error: dst refspec v0.2.1 matches more than one. error: failed to push some refs to 'git@github.com:tinogomes/resque_spec.git'
Neste caso, ao invés de só usarmos o nome do branch, devemos usar o seu endereço de referência, no caso:
git push <repository> :refs/heads/<branch>
$ git push origin :refs/heads/v0.2.1
Referência: http://cheat.errtheblog.com/s/git
Como aplicar um patch de `git diff`
Publicado; 01/02/2011 Filed under: git | Tags: diff, git, patch Comentários desativadosCriando o arquivo de patch
$ git diff > /tmp/arquivo.patch
Aplicando o patch
$ patch -p1 < /tmp/arquivo.patch
Baseado no post de Thomas Amsler sobre o assunto.





