Este documento apresenta uma introdução ao Git e GitHub, incluindo: (1) os conceitos básicos de controle de versão e por que usar o Git, (2) como usar o Git no seu fluxo de trabalho individual, e (3) como colaborar em projetos maiores com o Git/GitHub.
2. Nossa jornada no dia de hoje
Saber se localizar no mundo de controle de versão
Integrando o controle de versão no seu fluxo de trabalho individual
Colaborando em projetos maiores com o Git/Github
10. Porque o Git?
• Velocidade
• Design Simples
• Desenvolvimento não linear
• Totalmente distribuído
• Robusto (capaz de lidar com projetos de grande porte)
11. Um pouco do Histórico
1991 - 2002
Patches e Diretórios
compartilhados
2002 - 2005 2005 - ...
12. Passo 2:
Usando o Git no seu fluxo de
trabalho
USANDO O GIT NOS SEUS PROJETOS
14. Conceitos Git
Outros sistemas
guardam alterações
em arquivos, o Git
trabalha com fotos
dos arquivos no
projeto
Integridade
Tudo é verificado
com CHECK-SUM
com SHA-1
Local
Quase todas as
operações no Git
são locais. Logo
você pode
trabalhar offline e
testar seu código
tranquilamente
Somente adição
de dados
Git geralmente
adiciona dados no
seu controle, isso
infere que quase
sempre se pode
reverter qualquer
ação
15. Configuração da ferramenta 3 níveis
Nível Descrição Prioridade
Sistema Configurações comuns a todos usuários do
sistema (computador) 3
Global Configurações de um usuário específico do
sistema (o que está logado) 2
Local Configurações específicas para o projeto que
você está trabalhando 1
IMPORTANTE: Configurações locais (projeto) tem prioridade sobre
configurações globais e de sistema
16. Prática 1/1
• Criação de um usuário no GitHub
• Configuração básica do seu ambiente após instalação do Git
localmente
• COMANDOS:
• git config
17. Pratica 1/2
Comandos que iremos explorar nessa sessão:
• Iniciando um repositório:
• git init
• git clone
18. Os três estados Básicos
Essa é uma das partes mais importantes de se saber antes de começar a trabalhar com o Git.
20. Pratica 1/3
• Adicionando arquivos na área de staging
• git add
• Verificando o status do nosso diretório de trabalho:
• git status
• Fazendo commits
• git commit
• git commit -m “mensagem”
• Fazendo uma correção
• git commit --amend
26. Por que usar branches?
Base do Código Funcionando (Master sugestão)
Base do Código em Produção
Base do Código emTeste
Base do Código em Desenvolvimento
Playground para novas funcionalidades
Estabilidade
40. O que é o GitHub
“A Web-based Git repository hosting
service, which offers all of the distributed revision
control and source code management (SCM)
functionality of Git as well as adding its own features
was launched. GitHub provides a Web-based
graphical interface and desktop as well as
mobile integration. It also provides access
control and several collaboration features such as
bug tracking, feature requests, task
management, and wikis for every
project.”
Servidor de repositório
InterfaceWeb
Controle de acesso
Gestão de Bug
Requisições de
Funcionalidades
Gestão de tarefas
Wiki para os projetos
41. Mona, o Octocat
Curiosidades
• Foi criado em 2007, pelo mesmo criador do
passarinho doTwitter – Oxley
https://www.idokungfoo.com/
https://dribbble.com/simonox
42. Parte Prática 2/1
• Criando um repositório
• Configuração de acessos
• Configurando a lista de .gitignore
1) Falar sobre o maior projeto de colaboração do mundo: Desenvolvimento do Linux
2) Uso da ferramenta proprietária BitKeeper
4) In 2005, the relationship between the community that developed the Linux kernel and the commercial company that developed BitKeeper broke down, and the tool’s free-of-charge status was revoked. This prompted the Linux development community (and in particular Linus Torvalds, the creator of Linux) to develop their own tool based on some of the lessons they learned while using BitKeeper. Some of the goals of the new system were as follows:
Speed
Simple design
Strong support for non-linear development (thousands of parallel branches)
Fully distributed
Able to handle large projects like the Linux kernel efficiently (speed and data size)
Criar conta no GitHub (chamar alguém que não tenha conta para criar na hora) - alertar sobre o e-mail no-reply
Configurar nome de usuário
git config --global user.name "nome"
Nota: se não informar o nível, ele entende como configuração local
Configurar e-mail (lembrar de informar o e-mail no reply)git config --global user.email email@email.com
Configurar editor
git config core-editor
Vamos entrar em uma das partes mais legais do GIT agora. E para isso temos que entrar um pouco mais a fundo e saber o que é um commit.
Geralmente não queremos mexer no código de produção, ou base estável do meu código (se pensarmos em releases alpha, beta, etc).
Um commit é um ponteiro para um snapshot, que por sua vez é uma arvore de arquivos. Esses commits podem ter relação com outros commits.
Ao criar um novo branch, estamos criando um novo ponteiro.