-
1. Primeiros Passos
- 1.1 Sobre Controle de Versão
- 1.2 Uma Breve História do Git
- 1.3 O que é Git?
- 1.4 A Linha de Comando
- 1.5 Instalando o Git
- 1.6 Configuração inicial do Git
- 1.7 Obtendo Ajuda
- 1.8 Resumo
-
2. Fundamentos do Git
-
3. Ramificação (Branching) no Git
-
4. Git no Servidor
- 4.1 Os Protocolos
- 4.2 Colocando o Git em um Servidor
- 4.3 Gerando a sua Chave Pública SSH
- 4.4 Configurando o Servidor
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Opções de Hospedagem de Terceiros
- 4.10 Resumo
-
5. Git Distribuído
-
6. GitHub
-
7. Ferramentas do Git
- 7.1 Seleção de Revisão
- 7.2 Área de Stage Interativa
- 7.3 Fazendo Stash e Limpando
- 7.4 Assinando Seu Trabalho
- 7.5 Pesquisando (Searching)
- 7.6 Reescrevendo o Histórico
- 7.7 Reset Desmistificado
- 7.8 Merging Avançado
- 7.9 Rerere
- 7.10 Depurando com Git
- 7.11 Submódulos
- 7.12 Empacotando (Bundling)
- 7.13 Substituir (Replace)
- 7.14 Armazenamento de Credenciais
- 7.15 Resumo
-
8. Customizando o Git
- 8.1 Configuração do Git
- 8.2 Atributos do Git
- 8.3 Hooks do Git
- 8.4 Uma Política de Exemplo Imposta pelo Git
- 8.5 Resumo
-
9. Git e Outros Sistemas
- 9.1 Git como Cliente
- 9.2 Migrando para o Git
- 9.3 Resumo
-
10. Git Internals (Por Dentro do Git)
- 10.1 Encanamento e Porcelana (Plumbing and Porcelain)
- 10.2 Objetos do Git
- 10.3 Referências do Git
- 10.4 Arquivos de pacote (Packfiles)
- 10.5 Refspec
- 10.6 Protocolos de Transferência
- 10.7 Manutenção e Recuperação de Dados
- 10.8 Variáveis de Ambiente
- 10.9 Resumo
-
A1. Appendix A: O Git em Outros Ambientes
- A1.1 Interfaces Gráficas
- A1.2 Git no Visual Studio
- A1.3 Git no Visual Studio Code
- A1.4 Git no IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Git no Sublime Text
- A1.6 Git no Bash
- A1.7 Git no Zsh
- A1.8 Git no PowerShell
- A1.9 Resumo
-
A2. Appendix B: Incorporando o Git nos seus Aplicativos
- A2.1 Linha de Comando do Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Appendix C: Comandos do Git
- A3.1 Configuração e Ajustes
- A3.2 Obtendo e Criando Projetos
- A3.3 Snapshots Básicos
- A3.4 Branches e Merges
- A3.5 Compartilhando e Atualizando Projetos
- A3.6 Inspeção e Comparação
- A3.7 Depuração
- A3.8 Patches
- A3.9 E-mail
- A3.10 Sistemas Externos
- A3.11 Administração
- A3.12 Comandos de Encanamento
A1.7 Appendix A: O Git em Outros Ambientes - Git no Zsh
Git no Zsh
O Zsh também é distribuído com uma biblioteca de autocompletar (tab-completion) para o Git.
Para usá-la, basta executar autoload -Uz compinit && compinit no seu .zshrc.
A interface do Zsh é um pouco mais poderosa que a do Bash:
$ git che<tab>
check-attr -- display gitattributes information
check-ref-format -- ensure that a reference name is well formed
checkout -- checkout branch or paths to working tree
checkout-index -- copy files from index to working directory
cherry -- find commits not merged upstream
cherry-pick -- apply changes introduced by some existing commits
As autocompletações ambíguas não são apenas listadas; elas têm descrições úteis, e você pode navegar graficamente pela lista apertando a tecla tab repetidamente. Isso funciona com comandos do Git, seus argumentos, e nomes de coisas dentro do repositório (como refs e remotes), bem como nomes de arquivos e todas as outras coisas que o Zsh sabe autocompletar.
O Zsh é distribuído com um framework para obter informações de sistemas de controle de versão, chamado vcs_info.
Para incluir o nome do branch no prompt do lado direito, adicione estas linhas ao seu arquivo ~/.zshrc:
autoload -Uz vcs_info
precmd_vcs_info() { vcs_info }
precmd_functions+=( precmd_vcs_info )
setopt prompt_subst
RPROMPT='${vcs_info_msg_0_}'
# PROMPT='${vcs_info_msg_0_}%# '
zstyle ':vcs_info:git:*' formats '%b'
Isso resulta na exibição do branch atual no lado direito da janela do terminal, sempre que o seu shell estiver dentro de um repositório Git.
O lado esquerdo também é suportado, obviamente; apenas descomente a atribuição a PROMPT.
Fica um pouco parecido com isto:
zsh customizadoPara mais informações sobre o vcs_info, confira a sua documentação na página de manual do zshcontrib(1), ou online em https://zsh.sourceforge.io/Doc/Release/User-Contributions.html#Version-Control-Information.
Em vez do vcs_info, você pode preferir o script de customização de prompt que é distribuído junto com o Git, chamado git-prompt.sh; veja https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh para detalhes.
O git-prompt.sh é compatível tanto com o Bash quanto com o Zsh.
O Zsh é poderoso o suficiente para que existam frameworks inteiros dedicados a torná-lo melhor. Um deles é chamado "oh-my-zsh", e pode ser encontrado em https://github.com/ohmyzsh/ohmyzsh. O sistema de plugins do oh-my-zsh vem com um autocompletar poderoso para o Git, e ele possui uma variedade de "temas" para o prompt, muitos dos quais exibem dados de controle de versão. Um exemplo de um tema do oh-my-zsh é apenas um exemplo do que pode ser feito com esse sistema.