Mostrando postagens com marcador git. Mostrar todas as postagens

Adicionando o nome do branch em todos os commits do git

*obs: testei isso rodando no Ubuntu 12.4, não tenho certeza se funciona no Mac e no Windows

Com este hook o nome do branch será colocado no começo de todos os commits do git

Por exemplo se fizer isso no branch [historia_1]

git commit -am "lala popo"

A mensagem gravada será "[historia_1] lala popo"

Segue o passo a passo de como configurar o git para isso:

- Se estiver usando o git acima da versão 1.7.1, é possível deixar o hook global deste jeito

git config --global init.templatedir '~/.git_template'

- Depois disso, criar o arquivo abaixo

~/.git_template/hooks/prepare-commit-msg

- Colocar o conteudo abaixo:

#!/bin/bash

FILE=$1

if [[ "$git_status" =~ On\ branch\ ([^[:space:]]+) ]]; then
    BRANCH_NAME=${BASH_REMATCH[1]}
    test "$branch" != master || branch=' '
else
    # Detached HEAD.  (branch=HEAD is a faster alternative.)
    BRANCH_NAME="`git describe --all --contains --abbrev=4 HEAD 2> /dev/null ||
        echo HEAD`"
fi

echo $1

if [ -n "$BRANCH_NAME" ] && [ "$BRANCH_NAME" != "master" ]; then
    sed -i.bak -e "1s/^/[$BRANCH_NAME] /" $FILE
fi

- Salvar o arquivo e colocar permissão chmod 755

A partir desse ponto, todos os repositórios clonados e inicializados terão este hook, para os já existentes, precisa rodar o comando git init que carregará o hook global.

Git push para remote diferente do origin - Everything up-to-date

Em vários projetos, precisamos trabalhar em um fork do repositório oficial para futuramente fazermos um merge request (ou pull request) nele.

O que costumo fazer para isso é clonar o repositorio principal e criar um branch local (work, por exemplo), como abaixo:

git clone https://github.com/tinymce/tinymce.git
git remote add perrella git@github.com:fabioperrella/tinymce.git
git fetch
git checkout -b work


Com isso faço meus commits no branch work e depois envio os commits para o branch remoto perrella/master assim:


git push perrella master


Mas ocorre esta mensagem: Everything up-to-date
Você pode ter certeza que nada foi enviado olhando nos commits deste branch no github ou vendo no gitk --all ou no gitx por exemplo.


A solução para isso é simples (apesar de que não é simples entender na documentação do git push):


git push perrella work:master


Onde work é o nome do branch local que você quer enviar para o branch remoto master.


Agradecimentos ao @marciotrindade pela ajuda com isso!


Se alguém tiver um jeito melhor de fazer isso, comente ai!

vlw!