Controlando versões com Git e GitHub
Alexandre Aquiles, Rodrigo Ferreira
Conteúdo
Desenvolver software não é fácil. Há sempre demandas de novas funcionalidades a serem desenvolvidas e de alterações nas funcionalidades já existentes. Por isso, uma das preocupações nos projetos é manter um histórico de evolução do código fonte, facilitando o trabalho de desfazer algumas dessas alterações, caso seja necessário. Além disso, como geralmente trabalhamos em equipe, outra preocupação é sobre a integração do trabalho entre os membros da equipe. Diversos problemas relacionados com essas preocupações podem acontecer durante o desenvolvimento de um software, e, para evitá-los, é essencial a utilização de uma ferramenta de controle de versão.
O Git é uma dessas ferramentas de controle de versão. Foi criado em 2005 por Linus Torvalds, o criador do Linux, e hoje é uma das ferramentas de controle de versão mais utilizadas nos projetos de desenvolvimento de software, por ser mais rápido e eficiente do que as outras ferramentas tradicionais, como CVS e SVN.
Já o GitHub é um serviço web que nos permite hospedar repositórios de projetos que utilizam o Git, facilitando, assim, o trabalho em equipe e a colaboração com projetos open source.
Neste livro, Alexandre Aquiles e Rodrigo Ferreira mostrarão como utilizar o Git para controlar as versões do seu projeto. Serão ensinados comandos para criação de repositórios, trabalho local e remoto, branches, tags, conflitos, dentre outros assuntos. Além disso, será mostrado também como criar uma conta no GitHub e utilizá-la para hospedar seus repositórios.
Sumário
- 1 Introdução
- 1.1 Mantendo o histórico do código
- 1.2 Trabalhando em equipe
- 1.3 Sistemas de controle de versão
- 1.4 Controle de versão rápido e confiável com Git
- 1.5 Hospedando código no GitHub
- 1.6 O processo de escrita desse livro
- 2 Tour prático
- 2.1 Instalando e configurando o Git
- 2.2 Criando um arquivo texto para versionarmos
- 2.3 Versionando seu código com Git
- 2.4 Compartilhando seu código através do GitHub
- 3 Trabalhando com repositório local
- 3.1 Criando um repositório local
- 3.2 Rastreando arquivos
- 3.3 Gravando arquivos no repositório
- 3.4 Verificando o histórico do seu repositório
- 3.5 Verificando mudanças nos arquivos rastreados
- 3.6 Removendo arquivos do repositório
- 3.7 Renomeando e movendo arquivos
- 3.8 Desfazendo mudanças
- 4 Trabalhando com repositório remoto
- 4.1 Repositório remoto
- 4.2 Adicionando o repositório remoto
- 4.3 Enviando commits para o repositório remoto
- 4.4 Clonando o repositório remoto
- 4.5 Sincronizando o repositório local
- 4.6 Protocolos suportados pelo Git
- 5 Hospedando o repositório no GitHub
- 5.1 Serviços de hospedagem de projetos
- 5.2 GitHub: a rede social dos desenvolvedores
- 5.3 Encontrando projetos e visualizando o código-fonte
- 5.4 Criando um usuário no GitHub
- 5.5 Criando o repositório do projeto
- 5.6 Enviando os commits do projeto para o GitHub
- 5.7 Clonando o repositório hospedado no GitHub
- 5.8 Colaborando com projetos open source
- 6 Organizando o trabalho com branches
- 6.1 A branch master
- 6.2 Criando uma branch
- 6.3 Trocando de branch
- 6.4 Deletando uma branch
- 6.5 Comitando código em uma nova branch
- 6.6 Voltando para o master e fazendo uma alteração
- 6.7 Mesclando alterações
- 7 Trabalhando em equipe com branches remotas
- 7.1 Branches remotas
- 7.2 Compartilhando branches
- 7.3 Obtendo novas branches remotas em outros repositórios
- 7.4 Enviando commits para o repositório central
- 7.5 Obtendo commits de uma branch remota
- 7.6 Mesclando branches remotas e locais
- 7.7 Deletando branches remotas
- 8 Controlando versões do código com tags
- 8.1 Criando, listando e deletando tags
- 8.2 Mais informações com tags anotadas
- 8.3 Compartilhando tags com a sua equipe
- 9 Lidando com conflitos
- 9.1 Mesclando mudanças em um mesmo arquivo sem conflitos
- 9.2 Conflitos após um merge com mudanças em um mesmo arquivo
- 9.3 Resolvendo conflitos após um rebase
- 9.4 Usando uma ferramenta para resolver conflitos
- 10 Maneiras de trabalhar com Git
- 10.1 Utilizando só a branch master com um repositório central
- 10.2 Utilizando branches por funcionalidade com um repositório central
- 10.3 Utilizando branches por etapa de desenvolvimento com um repositório central
- 10.4 Colaborando com projetos open source com Fork e Pull Request
- 10.5 Organizando projetos open source gigantescos com Ditador e Tenentes
- 11 Apêndice ─ GitHub no Windows
- 11.1 Instalando o GitHub for Windows
- 11.2 Criando um novo repositório
- 11.3 Efetuando commits no repositório
- 11.4 Detalhando os commits
- 11.5 Enviando o repositório para o GitHub
- 11.6 Trabalhando com branches
Autores

Alexandre Aquiles
Alexandre Aquiles formou-se em Engenharia da Computação pela Unicamp e pós-graduou-se em Engenharia de Software Ágil pela UNA/BH. Desenvolve software profissionalmente desde 2005, tendo trabalhado nas áreas de logística, governo, mineração e seguros. Acredita que softwares devem ser desenvolvidos de forma iterativa e incremental, entregando continuamente software de valor e com qualidade.

Rodrigo Ferreira
Rodrigo Ferreira é Bacharel em Sistemas de Informação pela Universidade Católica de Brasília, trabalha com desenvolvimento de software desde 2008, tendo grande experiência em sistemas web utilizando a plataforma Java. Possui as certificações SCJP, SCWCD, OCEJPAD, OCEEJBD, OCEJWSD e CSM. Atualmente é desenvolvedor e instrutor na Caelum, onde ministra treinamentos de Java, Java EE, PHP, Front-end e Agile.
Dados do produto
- Número de páginas:
- 220
- ISBN:
- 978-85-66250-53-4
- Data publicação:
- 08/2014