Esses dias me deparei com um problema ao utilizar o Bundler com Rails 3, erroneamente eu rodei comando:
bundle install --deployment
Com isso obtive o seguinte erro:
You have modified your Gemfile in development but did not check
the resulting snapshot (Gemfile.lock) into version control
Isto é um bug que foi reportado esses dias no projeto do Bundler que pode ser resolvido com este fix:
rm -rf .bundle && bundle install
Uma forma de criar uma marcação no Git seja para documentar uma modificação importante ou para marcar uma versão é usar o comando “tag”. Caso você se depare com o problema de remover uma tag criada acidentalmente no repositório fica aqui a dica de como corrigir.
Imaginando que após alguns commits queremos criar uma tag fariamos isto:
git tag -a beta0.1 -m “Primeira versão beta”
Continuamos trabalhando e após mais alguns commits fazemos novamente:
git add . & git commit -am “Incluindo arquivo README”
git tag -a beta1.0 -m “Mais uma versão beta”
git push origin master
git push --tags
Counting objects: 6, done.
...
To git@github.com:mauriciodeamorim/testes_com_tags.git
* [new tag] beta0.1 -> beta0.1
* [new tag] beta1.0 -> beta1.0
Aqui cometemos o erro de criar outra tag numa sequência diferente da inicial e enviamos ao repositório.
Olhando nossa árvore no Gitk temos:

Em nosso repositório no GitHub ficou assim:

Então vamos considerar que a tag válida é a primeira “beta0.1” , então apagaremos a tag beta1.0 do repositório e depois localmente.
git push origin :beta1.0
git tag -d beta1.0
Agora olhando tanto para o GitK quanto para o repositório temos tudo em ordem novamente.
Outros comandos
| Envia uma tag de cada vez ao repositório |
git push origin beta0.1 |
| Envia todas as tags ao repositório |
git push – - tags |
| Envia commits e tags de uma só vez ao repositório |
git push origin master – - tags |
| Lista as tags existentes |
git tag |
| Descreve a tag e quantos commits temos após ela |
git describe |
| Mostra a tag e commit detalhadamente |
git show beta0.1 |
| Mostra a tag detalhadamente |
git tag -v beta0.1 |
Referências:
Git Ready
Github – Working with remotes
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