2. Instrutor
Stefan Horochovec
• Arquiteto de Software;
• Adobe Community Manager;
• Oreilly Community Author;
• BlackBerry Developer Manager;
• Professor/Autor/Palestrante;
• 13 anos de experiência no desenvolvimento WEB;
• 5 anos de experiência no desenvolvimento Mobile;
• 7 anos como líder de grupo de desenvolvedores;
• Blog: http://www.horochovec.com.br/
• Twitter: @horochovec
5. Histórico
• Source Code Control System – SCCS
• 1972;
• Código fechado;
• Distribuído gratuitamente com Unix;
• O versionamento era baseado em SNAPSHOTs das alterações do
arquivo. Para obter versões recentes, o Diff das alterações eram
aplicados na ordem cronológica do versionamento, uma operação lenta
em arquivos com grandes números de modificações;
• Revision Control System – RCS
• 1982;
• Open-source;
• Cross-plataform;
• O versionamento era baseado em manter disponível a última alteração
do arquivo. Para obter versões antigas, o PATH das alterações era
aplicado de forma retroativa ao último arquivo versionado, garantindo
assim uma maior velocidade comparando com o SCCS;
6. Histórico
• Concurrent Version System – CVS
• 1986 - 1990;
• Open-source;
• Criado o conceito de repositório;
• Trabalhava apenas com arquivos textos;
• Múltiplas pessoas poderiam trabalhar no mesmo arquivo;
• Apache Subversion – SVN
• 2000;
• Open-source;
• Versionamento de arquivos binários;
• O versionamento era baseado em diretórios, e não em arquivos.
Surge o conceito de REVISION;
• Uma REVISION baseava que determinados arquivos foram
alterados naquele “commit”.
7. Histórico
• Git – Git
• 2005;
• Criado por Linus Trovalds;
• Distributed Version Control;
• Mais rápido que outros SCM (até 100x mais);
• Utilizado por empresas como:
• Adobe;
• Apache Software Foundation;
• Atlassian (JIRA, Confluence);
• BlackBerry;
• Globo.com;
• Google;
• Petrobras;
• Rede Globo;
• Oracle;
9. Distributed Version Control
• Filosofia anterior
• Único repositório central contendo uma versão centralizada;
• Cópias locais do repositório central com constantes check-outs
para sincronização;
• Nova filosofia
• Não existe o conceito de um único repositório;
• Alterações de código são mantidas em “change sets”;
• O foco muda para controle de change sets entre repositórios;
37. git add
Com o comando “add”, o git irá verificar todas as alterações
feitas a partir do seu diretório e irá adicioná-las ao tracking
de alterações.