Controle de Versão • Não depende de repositório Central • Cada “clone” é um repositório completo • Histórico Completo • Criar Branches e Fazer Merges é rápido e fácil
$ git init $ git add . $ git commit -m ‘versao inicial do projeto’ Projeto já existente: $ git clone [url-do-projeto] Marcar como staged, ou seja, preparar para commit: $ git add [nome-do-arquivo] Verificar status de um arquivo (untracked, unmodified, modified, staged): $ git status Ignorar arquivos no Git: criar arquivo .gitignore contendo os arquivos que deverão ser ignorados; Comitar arquivo: $ git -m ‘mensagem’ $ git -a -m ‘mensagem’ Excluir um arquivo do git e do diretório de trabalho: $ git rm [nome-do-arquivo] $ git commit -m ‘mensagem’ Excluir um arquivo do git e mantê-lo no diretório: $ git rm –cached [nome-do-arquivo] Renomear ou mover um arquivo: $ git mv [nome-origem] [nome-destino] Visualizar o historico de commits: $ git log $ gitk Alterar a mensagem do ultimo commit: $ git commit –amend Voltar um arquivo commitado para uma versao anterior: $ git checkout — [nome-arquivo] Listar servidores remotos: $ git remote -v
fetch [servidor] $ git fetch [servidor] Trazer e atualizando as alteracoes feitas remotamente: $ git pull [servidor-remoto] Subir alteracoes no servidor remoto: $ git push [servidor-remoto] Exemplo: $ git push origin master (assumindo que o servidor remoto é origin e que a branch é master) Listar tags: $ git [nome-da-tag] Criar tags: $ git tag -a -m “comentario” [descricao-tag] Exemplo: $ git tag -a -m “primeira versao do appender4log4j” version-0.0.1 compartilhar tags remotamente: $ git push [servidor-remoto] [descricao-tag] $ git push [servidor-remoto] –tags Criar branchs: $ git branch [nome-branch] Remover branchs: $ git branch -d [nome-branch] Mover para uma branch existente: $ git checkout [nome-branch] Criar e mover para uma branch ao mesmo tempo: $ git checkout -b [nome-branch] Ir para a branch que irá receber a outra branch; $ git checkout [nome-branch] Executar comando para fazer o merge: $ git merge [nome-branch-que-contem-novo-conteudo] Visualizar conflitos no merge: $ git status Marcar conflito como resolvido, executar nos 2 branches: