forma lógica de organizar e controlar revisões existe quase desde que conhecemos a escrita • Edições de livros são um exemplo disso na era do “print” -- mas sempre existiram a borracha e o corrector • Hoje, na era digital, os VCS podem ser encontrados embutidos em editores de texto e folhas de cálculo (CTRL+Z ou CTRL+Y)
precisam alterar código geralmente em simultâneo • O controle de revisões permite-nos reverter um documento a uma versão anterior, corrigir falhas, explorar novas ideias sem afectar o documento original e proteger-nos de vandalismo • Mais ainda, permite-nos ter uma visão clara sobre quando uma modificação foi feita, quem a fez e porquê, e o que foi modificado
sistema de controle de revisões e versões distribuído, desenhado para lidar com projetos pequenos assim como grandes com velocidade e eficiência. • Revisão – um ficheiro passa por várias revisões • Versão – marca o estado do repositório como um todo em relação a um conjunto de ficheiros e suas revisões individuais
• Velocidade (comparativamente a outros SCM) • Distribuição com suporte a fluxos diferentes • Fiabilidade e Segurança de Dados • Staging Area – Staging de porções de um ficheiro modificado ou da Working Tree • Open Source e Gratuito
as mudanças do arquivo ou directório para o próximo commit. O arquivo passa a ser rastreado • git reset | git checkout <file> Remove as mudanças do arquivo para o próximo commit • git rm –cache <file> Para de rastrear o arquivo
o editor para inserir a mensagem • git commit –a Adiciona as mudanças dos arquivos já rastreados e realiza o commit. O editor será aberto • git commit –m “<msg>” Realiza o commit, com a mensagem dada. Nota: Não é boa prática use sempre um template definido pela sua equipa
a área transitória em que os ficheiro ficam antes do commit • git status [-s] Lista os arquivos que estão e que não estão na staging area, e os arquivos que não estão sendo rastreados.
nos arquivos entre o commit <commit> e o directório de trabalho • git diff --cached <commit> – Exibe a diferença nos arquivos entre o commit <commit> e a área transitório