6. GitHub
7. Ferramentas do Git
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugging with Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Resumo
8. Personalizar o Git
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Resumo
9. O Git e Outros Sistemas
- 9.1 O Git como Cliente
- 9.2 Migrar para o Git
- 9.3 Resumo
10. Internos do Git
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Resumo
A1. Appendix A: Git em Outros Ambientes
- A1.1 Graphical Interfaces
- A1.2 Git no Visual Studio
- A1.3 Git no Eclipse
- A1.4 Git in Bash
- A1.5 Git no Zsh
- A1.6 Git no Powershell
- A1.7 Resumo
A2. Appendix B: Incorporar o Git nos teus Aplicativos
- A2.1 Linha de comando Git
- A2.2 Libgit2
- A2.3 JGit
A3. Appendix C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
A2.1 Appendix B: Incorporar o Git nos teus Aplicativos - Linha de comando Git
Se o teu aplicativo for para desenvolvedores, as chances são boas de que ele poderia beneficiar da integração com o controle de origem. Mesmo os aplicativos não-desenvolvedores, como os editores de documentos, poderiam beneficiar dos recursos de controle de versão, e o modelo do Git funciona muito bem para muitos cenários diferentes.
Se tu precisares integrar o Git com o teu aplicativo, tens essencialmente três opções: gerar um shell e usar a ferramenta de linha de comando Git; Libgit2; e JGit.
Linha de comando Git
Uma opção é gerar um processo de shell e usar a ferramenta de linha de comando Git para fazer o trabalho. Isto tem a vantagem de ser canónico, e todos os recursos Git são suportados. Isto também é bastante fácil, uma vez que a maioria dos ambientes de execução tem uma maneira relativamente simples de invocar um processo com argumentos de linha de comando. No entanto, esta abordagem tem algumas desvantagens.
Um deles é que toda a saída é um texto simples. Isto significa que terás que analisar a mudança do formato de saída do Git para ler as informações de progresso e resultado, que podem ser ineficientes e propensas a erros.
Outra é a falta de recuperação de erros. Se um repositório estiver danificado de alguma forma, ou o utilizador tiver um valor de configuração com formato incorreto, o Git simplesmente se recusará a executar muitas operações.
Outro é o de gerir os processos. O Git requer que mantenhas um ambiente de shell num processo separado, o que pode adicionar uma complexidade indesejada. Tentando coordenar muitos destes processos (especialmente quando potencialmente acessando o mesmo repositório multiprocesso) pode ser um desafio.