Instalando o git no linux baseado no Debian
$ apt-get install git
Configuração inicial
$ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com
Zipando partes do projeto
# Salvando os arquivos alterados em um arquivo zip de um commit especifico git archive --output=FILE.zip COMMIT $(git diff --name-only COMMIT COMMIT~1) # Também este comando faz a mesma coisa que o anterior git diff -z --name-only HEAD^ | xargs -0 git archive -o update.zip HEAD # Achei uma outra forma de fazer bem interessante zip update.zip $(git diff --name-only -D HEAD^)
Tag
# visualizando/listando suas tags já criadas git tag # Criando uma tag git tag -a nome_da_tag -m "comentario para a tag" # Enviando todas as tags para o servidor remoto git push -u origin --tags # Enviando uma tag especifica para o servidor remoto git push -u origin nome_da_tag # Excluindo uma tag do repositório local git tag -d nome-da-tag # Excluindo uma tag do repositório remoto git push origin :refs/tags/nome-da-tag
Mais detalhes sobre tags, pode ser encontrado em: http://git-scm.com/book/pt-br/Git-Essencial-Tagging
Log
# Exibindo a lista de log em uma linha com o ID resumido git log --oneline # Exibindo a lista de log em uma linha com o ID completo git log --pretty=oneline # Exibindo a lista de arquivos ignorados git ls-files --others -i --exclude-standard
Branch
# Criando um branch git branch nome_branch # Mudando de branch git checkout nome_branch # Atalho para os dois comandos acima git checkout -b nome_branch # Renomeando um branch git branch -m branch_anterior novo_branch # Excluindo um branch local git branch -d nome_do_branch_local # Excluindo um branch remoto git push origem :nome_do_branch_remoto
Adicionando repositorio remoto
# Adicionando o repositorio remoto em um projeto já iniciado git remote add origin ENDERECO-DO-REPOSITORIO # verificando se o remoto foi adicionado git remote -v
.gitignore não funcionando
# Limpando o cache git rm -r --cached . # Adicionando novamente git add .
Desfazendo… <- <- <-
# Se você excluiu arquivos do seu projeto sem querer, é possível recuperar os arquivos do último commit com o seguinte comando # 1º Opção se você ainda não fez o commit git reset --hard HEAD # 2° Opção se você já fez o commit git reset --hard HEAD^
Mudando de branch sem commitar as alterações imcompletas
# Para demonstrar, você entra no seu projeto e começa a trabalhar em alguns arquivos e adiciona alguma modificação na área de seleção. Se você executar git status, você pode ver seu estado sujo:
# Agora você quer mudar de branch, mas não quer fazer o commit do que você ainda está trabalhando; você irá fazer o stash das modificações. Para fazer um novo stash na sua pilha, execute git stash:
git stash
# Para colocar um nome no stash utilize:
git stash save "parei em algum lugar"
# Neste momento, você pode facilmente mudar de branch e trabalhar em outra coisa; suas alterações estão armazenadas na sua pilha. Para ver as stashes que você guardou, você pode usar git stash list:
git stash list
# Você pode aplicar aquele que acabou de fazer o stash com o comando mostrado na saída de ajuda do comando stash original: git stash apply. Se você quer aplicar um dos stashes mais antigos, você pode especificá-lo, assim: git stash apply stash@{2}. Se você não especificar um stash, Git assume que é o stash mais recente e tenta aplicá-lo:
git stash apply
# A opção apply somente tenta aplicar o stash armazenado — ele continua na sua pilha. Para removê-lo, você pode executar git stash drop com o nome do stash que quer remover:
git stash drop stash@{8}
# Você também pode executar git stash pop para aplicar o stash e logo em seguida apagá-lo da sua pilha.
git stash pop
Forçar Git a remover alterações locais com o comando pull
Nota importante: Este procedimento vai remover do servidor local todos os ficheiros untracked.
Se houver alterações locais que não se pretende comitar, o comando
git pull
por vezes pode dar problemas de merge, originando mensagens do tipo
Please, commit your changes or stash them before you can merge
Nestes casos é preciso executar os seguintes comandos
git reset --hard HEAD git clean -f -d git pull
Erros:
Erro ao tentar fazer um merge
fatal: refusing to merge unrelated histories
Rodar o seguinte comando
git pull origin master --allow-unrelated-histories
Referências bibliográficas
http://git-scm.com/book/pt-br/
http://blog.wylkon.com.br/post/1092838251/conhecendo-git
http://www.woompa.blog.br/2011/07/13/problemas-com-seu-gitignore-ele-nao-funciona/
https://git-scm.com/book/pt-br/v1/Primeiros-passos-Instalando-Git
https://git-scm.com/book/pt-br/v1/Primeiros-passos-Configura%C3%A7%C3%A3o-Inicial-do-Git