pro git
305 pág.

pro git

Pré-visualização50 páginas
Pro-Git
Tudo que você precisa saber sobre a ferramenta Git de
controle de distribuição de código.
Eric Douglas
Esse livro está à venda em http://leanpub.com/pro-git
Essa versão foi publicada em 2014-05-11
This is a Leanpub book. Leanpub empowers authors and publishers with the Lean Publishing
process. Lean Publishing is the act of publishing an in-progress ebook using lightweight tools and
many iterations to get reader feedback, pivot until you have the right book and build traction once
you do.
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0
Unported License
Tweet Sobre Esse Livro!
Por favor ajude Eric Douglas a divulgar esse livro no Twitter!
A hashtag sugerida para esse livro é #pro-git.
Descubra o que as outras pessoas estão falando sobre esse livro clicando nesse link para buscar a
hashtag no Twitter:
https://twitter.com/search?q=#pro-git
Todo o livro Pro Git, escrito por Scott Chacon e publicado pela Apress, está disponível aqui. Todo
conteúdo é licensiado sobre a Creative Commons Attribution Non Commercial Share Alike 3.0
license. Versões impressas do livro estão disponíveis na Amazon.com.
Você pode conferir a versão online deste livro aqui.
Conteúdo
Capítulo 1. Primeiros passos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1 Primeiros passos - Sobre Controle de Versão . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Primeiros passos - Uma Breve História do Git . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Primeiros passos - Noções Básicas de Git . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Primeiros passos - Instalando Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.5 Primeiros passos - Configuração Inicial do Git . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Primeiros passos - Obtendo Ajuda . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 Primeiros passos - Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Capítulo 2. Git Essencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1 Git Essencial - Obtendo um Repositório Git . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Git Essencial - Gravando Alterações no Repositório . . . . . . . . . . . . . . . . . . . . 18
2.3 Git Essencial - Visualizando o Histórico de Commits . . . . . . . . . . . . . . . . . . . 30
2.4 Git Essencial - Desfazendo Coisas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
2.5 Git Essencial - Trabalhando com Remotos . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.6 Git Essencial - Tagging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.7 Git Essencial - Dicas e Truques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.8 Git Essencial - Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Capítulo 3. Ramificação (Branching) no Git . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.1 Ramificação (Branching) no Git - O que é um Branch . . . . . . . . . . . . . . . . . . . 53
3.2 Ramificação (Branching) no Git - Básico de Branch e Merge . . . . . . . . . . . . . . . 59
3.3 Ramificação (Branching) no Git - Gerenciamento de Branches . . . . . . . . . . . . . . 67
3.4 Ramificação (Branching) no Git - Fluxos de Trabalho com Branches . . . . . . . . . . . 69
3.5 Ramificação (Branching) no Git - Branches Remotos . . . . . . . . . . . . . . . . . . . 72
3.6 Ramificação (Branching) no Git - Rebasing . . . . . . . . . . . . . . . . . . . . . . . . 79
3.7 Ramificação (Branching) no Git - Sumário . . . . . . . . . . . . . . . . . . . . . . . . . 87
Capítulo 4 - Git no Servidor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.1 Git no Servidor - Os Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
4.2 Git no Servidor - Configurando Git no Servidor . . . . . . . . . . . . . . . . . . . . . . 93
4.3 Git no Servidor - Gerando Sua Chave Pública SSH . . . . . . . . . . . . . . . . . . . . 95
4.4 Git no Servidor - Configurando o Servidor . . . . . . . . . . . . . . . . . . . . . . . . 97
4.5 Git no Servidor - Acesso Público . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
CONTEÚDO
4.6 Git no Servidor - GitWeb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.7 Git no Servidor - Gitosis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.8 Git no Servidor - Gitolite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
4.9 Git no Servidor - Serviço Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
4.10 Git no Servidor - Git Hospedado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
4.11 Git no Servidor - Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Capítulo 5 - Git Distribuído . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
5.1 Git Distribuído - Fluxos de Trabalho Distribuídos . . . . . . . . . . . . . . . . . . . . . 126
5.2 Git Distribuído - Contribuindo Para Um Projeto . . . . . . . . . . . . . . . . . . . . . 129
5.3 Git Distribuído - Mantendo Um Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . 153
5.4 Git Distribuído - Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Capítulo 6 - Ferramentas do Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.1 Ferramentas do Git - Seleção de Revisão . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.2 Ferramentas do Git - Área de Seleção Interativa . . . . . . . . . . . . . . . . . . . . . . 177
6.3 Ferramentas do Git - Fazendo Stash . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.4 Ferramentas do Git - Reescrevendo o Histórico . . . . . . . . . . . . . . . . . . . . . . 186
6.5 Ferramentas do Git - Depurando com Git . . . . . . . . . . . . . . . . . . . . . . . . . 193
6.6 Ferramentas do Git - Submódulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.7 Ferramentas do Git - Merge de Sub-árvore (Subtree Merging) . . . . . . . . . . . . . . 203
6.8 Ferramentas do Git - Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
Capítulo 7 - Customizando o Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
7.1 Customizando o Git - Configuração do Git . . . . . . . . . . . . . . . . . . . . . . . . 207
7.2 Customizando o Git - Atributos Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
7.3 Customizando o Git - Hooks do Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
7.4 Customizando o Git - Um exemplo de Política Git Forçada . . . . . . . . . . . . . . . . 229
7.5 Customizando o Git - Sumário . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
Capítulo 8 - Git e Outros Sistemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
8.1 Git e Outros Sistemas - Git e Subversion . . . . . . . . . . . . . . . . . . . . . . . . . . 241
8.2 Migrando para o Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
8.3 Git e Outros Sistemas - Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Capítulo 9 - Git Internamente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
9.1 Git Internamente - Encanamento (Plumbing) e Porcelana (Porcelain) . . . . . . . . . . 265
9.2 Git Internamente - Objetos do Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
9.3 Git Internamente - Referencias Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
9.4 Git Internamente - Packfiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
9.5 Git Internamente - O Refspec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
9.6 Git Internamente