O que é 'Git'? E porque ele é importante!

É um sistema de controle de versão distribuída permitindo que vários desenvolvedores possam colaborar em um projeto de maneira simultanea.
O Git acompanha as alterações que ocorrem nos códigos fonte, permite o versionamento, e facilita a colaboração entre os membros de um grupo.
O Git se tornou importante porque é muito 'robusto', flexível e eficiente no controle das alterações de versão no ambiente colaborativo de desenvolvimento.
Sua ampla adoção, poderosas funcionalidades e suporte ao mais diversos fluxos de trabalho fazem dele uma ferramenta essencial nas práticas de desenvolvimento.
Trabalhando em pequenos projetos ou em aplicações de larga escala em ambientes corporativos o Git com suas várias funcionalidades contribue para as atividades de desenvolvimento de software.

Navegação
Principais estados dos arquivos no Git

O Git possui três estados nos quais seus arquivos podem ser armazenados.Estes estados correspodem a estágios de um projeto a saber: "modificado", "staged" e "comitado".
"Modificado" - significa que houve uma alteração em seu arquivo mas o mesmo não foi ainda "comitado".
"Staged" - significa que voce marcou o arquivo modificado para que ele seja encaminhado ao próximo 'commit'.
"Comitado" - significa que os dados pertinentes ao seu arquivo estão seguros em sua base de dados.

Conceitos chave:'Repositories','Commits' e 'Branches'
  • 'Repositories': Os repositórios Git são recipientes de projetos, armazenamento de arquivos e sua revisão hitórica
  • 'Commits': Cada 'commit' representa um 'instantâneo'em um determinado tempo permitindo aos usuários voltar atras em estatus anteriores
  • 'Branches': Eles permitem desenvolvimentos paralelos de tal sorte que os desenvolvedores possam trabalhar em diferentes características ou até mesmo corrigir falhas no software (bugs) independentemente.
Git workflow (fluxo de trabalho)
  • Inicializando um repositório: git init
  • Adicionando arquivos na área de 'staging': git add
  • Realizando um 'commit': git commit -m "Commit message"
  • Verificando o estatus: git status
  • Vendo o histórico dos commits: git log
Terminal Git e porque não uma interface gráfica

A interface gráfica de fato provê uma forma intuitiva de interagir com o Git.
Entretanto o terminal oferece várias vantagens que o fazem ser o preferido entre os desenvolvedores. A linha de comando permite uma grande visibilidade e controle. Os desenvolvedores tem clareza pela representação textual das mudanças do projeto, os 'branches' e toda a história do desenvolvimento.
Esta transparência é de todo crucial para o entendimento das complexidades do controle de versão permitindo atuações de maneira imediata.
Deve-se salientar ainda que o terminal permite criar 'scripts' que auxiliam os desenvolvedores a automatizar tarefas repetitivas ou customizar fluxos de trabalho específicos de seus projetos.

Terminal Git bash
E como não falar de GitHub?

O engenheiro de software, Tom Preston-Werner vendo a necessidade de se criar uma forma mais eficiente de compartilhar e gestionar os códigos fonte entre os desenvolvedores deu início ao projeto do GitHub em março de 2008.Através de investidores a idéia cresceu e após um aporte de 100 milhoes de dólares a empresa em dois anos já contava com um milhão de usuários. Crescendo desta forma ela foi adquirida por 7,5 bilhões de dolares pela Microsoft. GitHub é um serviço de hospedagem via web para desenvolvimento de projetos de software que usa o sistema de revisão e controle do Git. Ele oferece todas as funcionalidades de controle distribuido de versão do Git e adiciona sua próprias funcionalidades.

Hosted on GitHub Pages

CSS válido!

Programa do Curso

  • Instale o terminal do Windows
  • Instale o Git para Windows
  • Adicione o Git bash ao terminal do Windows
  • Configuração de identidade
  • Configuração de fim de linha
  • Configuração de editor padrão
  • Configuração de cores
  • Diferença entre 'Global", "Local" e "System"
  • Criação de conta no GitHub
  • Criação do repositório no GitHub
  • Verificando a existência de chave SSH
  • Gerando a nova chave SSH
  • Adicionando a chave SSH ao SSH-agent
  • Adicionando a chave SSH à sua conta no GitHub
  • Testando a conexão
  • Criação do repositório local
  • Ponto de partida
  • Configuração remota
  • Estados dos arquivos no git.
  • Adicionando arquivos ao projeto
  • Definição de 'Hash"
  • Execução do comite
  • Uso do git log identificando comite
  • Alteração dos arquivos no site
  • Vendo a história do projeto
  • Conhecendo o 'HEAD'
  • Trabalhando com 'ramos'
  • Movendo, apagando e renomeando arquivos
  • Alternando ramificações sem mesclar'
  • Mesclando (merging)
  • Resolvendo conflitos
  • Comparando versões
  • Como comparar mudanças nos seus arquivos
  • git diff verificando arquivos específicos
  • índice (Hashes das versões do arquivo )
  • Bloco de contexto
  • Estado do repositório
  • Vendo alterações desde o último comite
  • Vendo mudanças entre dois comites
  • Obtendo os hashes usando o 'git log'
  • Comitar as pendências do "Feature request"
  • Desfazendo as mudanças antes de adicioná-las ao "staged"
  • Desfazendo mudanças depois de adicioná-las ao "staged"
  • Desfazendo mudanças comitadas
  • Marcando versões
  • Visão detalhada do "Desfazer mudanças"
  • Definição
  • Iniciando um repositório com um nome específico para o ramo inicial
  • Como o Git habilita metodologias ágeis
  • Comandos básicos no git
  • Comandos git que voce usa no dia-a-dia
  • Fluxos de trabalho do git (git workflows)
Navegação
Sobre o Git

Com mais de 57000 alterações 'comitadas' e mais de 1300 colaboradores o Git se tornou a ferramenta de controle de versões mais usada mundo afora.
Seu criador é ninguem menos do que 'Linus Torvalds', o criador do 'Linux'.
O Git nasceu em 2005 quando da criação do kernel do sistema operacional Linux.
Desde então o seu mantenedor principal, Junio Hamano, um japonês, cuida da evolução do Git junto aos inúmeros colaboradores deste sistema de código aberto (open source).

Por que se chama Git?

'Git' é uma gíria do inglês britânico que significa 'pessoa desagradável'. E este nome foi dado pelo próprio criador.

Por que Linus Torvalds criou o Git?

Linus em seu desenvolvimento do Kernel do Linux usava como controle de versão uma ferramenta denominada 'BitKeeper'. Em um dado momento o dono dos direitos autorais desta ferramenta retirou o uso gratuíto. O que restou a Linus foi criar algo para substituir e ele o fez tornando a ferramenta gratuíta e de código aberto.

Um pouco mais sobre Git

Já sabemos que o Git é um sistema de controle de versão distribuída que rastreia as alterações ocorridas nos arquivos dos computadores. Mas não se presta somente para atividades voltadas para códigos fonte de programas mas também serve como gestor de alterações em configurações complexas de bancos dados. Até escritores de artigos de toda natureza fazem uso do Git coomo forma de manter suas edições atualizadas.

Uma vantagem do Git

O Git roda localmente em seu computador ou seja não depende de nenhum serviço de hospedagem em nuvem. Ele é auto-suficiente.

Alternativas ao Git

Algumas alternativas ao uso do Git, o qual é de uso gratuíto, são: - Azure DevOPS Server; Helix Core, AWS Code Commit, Subversion e Rational ClearCase. Estas ferramentas são pagas e em um processo de avaliação deste citado grupo destaca-se a lentidão no retorno do investimento bem como algumas muito caras. Dentre estas uma se destaca e se chama "Mercurial" por ser fácil de configurar e administrar.