GERENCIAMENTO DE
CODIGO
Armazenamento Backup
x x
GERENCIAMENTO DE
CÓDIGO
PORQUE GERENCIAR UM
CÓDIGO ?
• O que produzimos é software	

• Para ter qualidade, é necessário o código ter de qualidade
TRÊS CONCEITOS
Compartilhar o código	

!
Acompanhar as mudanças	

!
Criando ramificações
COMO?
COMO COMPARTILHAR O
CÓDIGO?
LOCK - MODIFY - UNLOCK
bloquear - modificar - desbloquear
O problema 	

está aqui
COPY - MODIFY - MERGE
copiar - modificar - fundir
A importancia de versionar um projeto
UMA BREVE HISTÓRIA DO GIT
• Kernel (núcleo) do Linux
(1991 - 2002)	

• Parceria/Desfazendo
relacionamento com
BitKeeper	

• Criação de um novo
projeto, que será o GIT
OBJETIVOS
• Velocidade	

• Design simples	

• Suporte robusto a desenvolvimento
não linear (milhares de branches paralelos)	

• Totalmente distribuído	

• Capaz de lidar eficientemente com
grandes projetos como o kernel do
Linux (velocidade e volume de dados)	

• Concepção em 2005 - popularidade
HOSPEDAGEM DE CÓDIGO
FONTE
• BerliOS	

• GitHub
• GNU Savannah	

• Google Code	

• Bitbucket
PROJETOS QUE USAM GIT
Android52
Arch Linux
Debian58
git66 GIMP67
jQuery75
Linux kernel
Linux Mint78 79
PHP93
Xiph110
Yahoo! UI Library112
Zend Framework113
Compatível com:Windows, Solaris, Linux e Mac	

Chris Wanstrath,Tom Preston-Werner e PJ
Hyett	

Lançado em abril de 2008	

Formatos suportados: Markdown,ASCIIIDoc,
POD e Roff
Compartilhar seus projetos	

Utilizar como portifólio	

Integração com o Git	

Fazer network e amigos	

Aprender e colaborar
5 MOTIVOS PELO QUALVALE A PENA
COMEÇAR A USAR GITHUB
COMENTÁRIOS
• Manter o repositório Git publico ou privado
(privado precisa de conta paga)	

• Wiki	

• Code Review	

• Rede social de desenvolvedores
LOCAIS DE OPERAÇÃO
Working Directory (Diretório deTrabalho)	

Staging Area (Área de Preparação)	

Repository or Git Directory (Diretório deTrabalho)
WORKING DIRECTORY
• Diretório local	

• São armazenados os
arquivos modificados e não
modificados
STAGING AREA
• Área de preparação	

• Arquivos que poderão
“commitados" (consolidados)	

• Snapshot
REPOSITORY
• Local mais importante	

• Onde se encontra os
arquivos commitados	

• Segurança	

• Fim da linha
REPOSITORY
Local ou Online?
COMANDOS BÁSICOS
Configurações de usuário	

Inicialização e clonagem de repositórios	

Analise de repositório	

Trabalhando com os locais de operação
CONFIGURAÇÕES DE
USUÁRIO
Define o nome que o identificará para créditos em um histórico de
revisão de versão.
git config —global user.name “[firstname lastname]"
Define um endereço de e-mail que será associado com cada marcador
histórico.
git config —global user.email “[email_valido]”
Define auto-coloração das linhas de comando para o Git, facilitando a
revisão
git config —global color.ui auto
INICIALIZAÇÃO E CLONAGEM
DE PROJETOS
Inicializa um diretório existente como um repositório Git
git init
Obtém um repositório inteiro de um local hospedado via URL
git clone [url]
ANÁLISE DE REPOSITÓRIO
Apresenta as informações do fluxo de trabalho
git status
Apresenta os arquivos que foram modificados mas não foram preparados
git diff
Apresenta os arquivos preparados que ainda não foram commitados
git diff —staged
Apresenta todas as comutações e os histórico dos branchs
git log
TRABALHANDO COM OS
LOCAIS DE OPERAÇÃO
Prepara arquivos para a consolidação
git add
Retira arquivos preparados da área de preparação
git reset
Consolida arquivos preparados como um snapshot
git commit -m “mensagem de descrição”
Envia todos os arquivos commitados como snapshot para o repositório
git push
Recebe todos os arquivos consolidares do repositório para o diretório de
trabalho
git pull
REFERENCIAS
Expert's Voice in Software Development - http://git-scm.com/book/pt-br/	

Git Cheat Sheet - https://help.github.com/articles/git-cheatsheet	

GIT e o Mercado - http://www.youtube.com/watch?v=-WvzRmi5nNI	

Para que serve o git - http://www.contagia.com.br/blog/git-pra-que-serve/	

Iniciando no Git - http://tableless.com.br/iniciando-no-git-parte-1/	

Livro oficial Git - http://git-scm.com/book/pt-br	

Modelos de versionamento - http://svnbook.red-bean.com/en/1.0/ch02s02.html

Git e Github - Comandos e conceitos básicos