git-logo.png

Observação: A trilha de git é destinada para a nova safra de desenvolvedores(as). Este tópico é destinado apenas para desenvolvedores(as) iniciantes, aqueles(as) que estão iniciando a sua jornada em desenvolvimento e não conhecem nada sobre git. Se conhece alguém nesta situação, envie este link!

Neste artigo, iremos abordar os seguintes tópicos:

1. Conhecer o git e um pouco de sua história

O núcleo (kernel) do Linux é um projeto de código aberto com um escopo bastante grande. A maior parte da vida da manutenção do núcleo o Linux (1991-2002), as mudanças no código eram compartilhadas como correções e arquivos. Em 2002, o projeto do núcleo do Linux começou usar uma DVCS proprietária chamada BitKeeper.

Em 2005, a relação entre a comunidade que desenvolveu o núcleo do Linux e a empresa que desenvolveu BitKeeper quebrou em pedaços, e a ferramenta passou a ser paga. Isto alertou a comunidade que desenvolvia o Linux (e especialmente Linus Torvalds, o criador do Linux) a desenvolver a sua própria ferramenta baseada em lições aprendidas ao usar o BitKeeper. Algumas metas do novo sistema era os seguintes:

  • Velocidade
  • Projeto simples
  • Forte suporte para desenvolvimento não-linear (milhares de ramos paralelos)
  • Completamente distribuído
  • Capaz de lidar com projetos grandes como o núcleo o Linux com eficiência (velocidade e tamanho dos dados)

Desde seu nascimento em 2005, Git evoluiu e amadureceu para ser fácil de usar e ainda reter essas qualidades iniciais. Ele é incrivelmente rápido, é muito eficiente com projetos grandes, e ele tem um incrível sistema de ramos para desenvolvimento não linear.

A principal diferença entre o Git e qualquer outro VCS (Subversion e similares) é a maneira como o Git trata seus dados. Conceitualmente, a maioria dos outros sistemas armazenam informação como uma lista de mudanças nos arquivos. Estes sistemas (CVS, Subversion, Perforce, Bazaar, e assim por diante) tratam a informação como um conjunto de arquivos e as mudanças feitas em cada arquivo ao longo do tempo.

O Git não trata nem armazena seus dados desta forma. Em vez disso, o Git trata seus dados mais como um conjunto de imagens de um sistema de arquivos em miniatura. Toda vez que você fizer um commit, ou salvar o estado de seu projeto no Git, ele basicamente tira uma foto de todos os seus arquivos e armazena uma referência para esse conjunto de arquivos. Para ser eficiente, se os arquivos não foram alterados, o Git não armazena o arquivo novamente, apenas um link para o arquivo idêntico anterior já armazenado. O Git trata seus dados mais como um fluxo do estado dos arquivos.

Esta é uma diferença importante entre o Git e quase todos os outros VCSs. Isto faz o Git reconsiderar quase todos os aspectos de controle de versão que a maioria dos outros sistemas copiaram da geração anterior. Isso faz com que o Git seja mais como um mini sistema de arquivos com algumas ferramentas incrivelmente poderosas, ao invés de simplesmente um VCS. Vamos explorar alguns dos benefícios que você ganha ao tratar seus dados desta forma quando cobrirmos ramificações no Git.

Quase Todas as Operações são Locais

A maioria das operações no Git só precisa de arquivos e recursos locais para operar - geralmente nenhuma informação é necessária de outro computador da rede. Se você estiver acostumado com um CVCS onde a maioria das operações têm aquela demora causada pela latência da rede, este aspecto do Git vai fazer você pensar que os deuses da velocidade abençoaram o Git com poderes extraterrestres. Como você tem toda a história do projeto ali mesmo em seu disco local, a maioria das operações parecem quase instantâneas.

Git Tem Integridade

Tudo no Git passa por uma soma de verificações (checksum) antes de ser armazenado e é referenciado por esse checksum. Isto significa que é impossível mudar o conteúdo de qualquer arquivo ou pasta sem que Git saiba. Esta funcionalidade está incorporada no Git nos níveis mais baixos e é parte integrante de sua filosofia. Você não perderá informação durante a transferência e não receberá um arquivo corrompido sem que o Git seja capaz de detectar.

O mecanismo que o Git utiliza para esta soma de verificação é chamado um hash SHA-1. Esta é uma sequência de 40 caracteres composta de caracteres hexadecimais (0-9 e-f) e é calculada com base no conteúdo de uma estrutura de arquivo ou diretório no Git. Um hash SHA-1 é algo como o seguinte:

24b9da6552252987aa493b52f8696cd6d3b00373

O Git Geralmente Somente Adiciona Dados

Quando você faz algo no Git, quase sempre dados são adicionados no banco de dados do Git - e não removidos. É difícil fazer algo no sistema que não seja reversível ou fazê-lo apagar dados de forma alguma. Como em qualquer VCS, você pode perder alterações que ainda não tenham sido adicionadas em um commit; mas depois de fazer o commit no Git do estado atual das alterações, é muito difícil que haja alguma perda, especialmente se você enviar regularmente o seu banco de dados para outro repositório.

Os Três Estados

Agora, preste atenção. Esta é a principal coisa a lembrar sobre Git se você quiser que o resto do seu processo de aprendizagem ocorra sem problemas. O Git tem três estados principais que seus arquivos podem estar: committed, modificado (modified) e preparado (staged). Committed significa que os dados estão armazenados de forma segura em seu banco de dados local. Modificado significa que você alterou o arquivo, mas ainda não fez o commit no seu banco de dados. Preparado significa que você marcou a versão atual de um arquivo modificado para fazer parte de seu próximo commit.

Isso nos leva a três seções principais de um projeto Git: o diretório Git, o diretório de trabalho e área de preparo.

O diretório Git é onde o Git armazena os metadados e o banco de dados de objetos de seu projeto. Esta é a parte mais importante do Git, e é o que é copiado quando você clona um repositório de outro computador.

O diretório de trabalho é uma simples cópia de uma versão do projeto. Esses arquivos são pegos do banco de dados compactado no diretório Git e colocados no disco para você usar ou modificar.

A área de preparo é um arquivo, geralmente contido em seu diretório Git, que armazena informações sobre o que vai entrar em seu próximo commit. É por vezes referido como o “índice”, mas também é comum referir-se a ele como área de preparo (staging area).

O fluxo de trabalho básico Git é algo assim:

  1. Você modifica arquivos no seu diretório de trabalho.
  2. Você prepara os arquivos, adicionando imagens deles à sua área de preparo.
  3. Você faz commit, o que leva os arquivos como eles estão na área de preparo e armazena essa imagens de forma permanente para o diretório do Git.

Se uma versão específica de um arquivo está no diretório Git, é considerado commited. Se for modificado, mas foi adicionado à área de preparo, é considerado preparado. E se ele for alterado depois de ter sido carregado, mas não foi preparado, ele é considerado modificado

2. Instalar o git em nossa estação (Windows)

Há também algumas maneiras de instalar o Git no Windows. A compilação mais oficial está disponível para download no site do Git. Basta ir a este link e o download começará automaticamente. Note que este é um projeto chamado Git para Windows (também chamado msysGit), que é algo separado do Git; para mais informações sobre isso, vá para este link.

Outra forma fácil de obter Git instalada é através da instalação de GitHub para Windows. O instalador inclui uma versão de linha de comando do Git, bem como a GUI. Ele também funciona bem com o PowerShell, e configura o cache de credenciais sólidas e as devidas configurações CRLF. Vamos saber mais sobre isso um pouco mais tarde, por enquanto basta dizer que estas são coisas que você deveria ter. Você pode baixá-lo da página GitHub para Windows, em http://windows.github.com.

3. Criar uma conta em um serviço - GitHub

Para título de aprendizado vamos criar nossa conta no serviço GitHub, uma plataforma de versionamento de código vastamente utilizado no mercado de trabalho. Não é difícil termos desenvolvedores iniciantes que confundem o GitHub com o git. Portanto, lembre-se. Existe uma diferença entre git e GitHub. O git é um sistema de controle de versão de códigos que pode ser utilizado de forma distribuída (enviando e recebendo versões entre computadores), enquanto o GitHub também é um sistema de controle de versão de código, mas com a disponibilização de uma plataforma on-line, onde você trabalha de forma colaborativa e seus fontes (dados) são levados para a nuvem. Além do controle de versão o GitHub disponibiliza inúmeras outras ferramentas para contribuir com a gestão e controle dos seus projetos. Resumindo, podemos dizer que o GitHub facilita a colaboração utilizando o git com tantas outras funcionalidades.

Inicialmente, acesse o site GitHub. A página home poderá ter uma apresentação diferente (muda ao passar do tempo), mas iremos clicar no botão “Sign Up”.

github-signup.png

Insira seu email e clique em “continue”

O endereço de email informado irá ser validado para verficiar se já existe uma conta GitHub criada. Caso esteja certo com a validação, crie uma senha e clique em “Continue”. Garanta que esteja criando uma senha forte, por motivo de segurança. No caso de já existir um usuário com o email desejado, você poderá recuperar a sua senha e seguir deste ponto.

Após a criação da senha, você irá escolher um nome de usuário. Escolha seu nome de usuário e aguarde a validação do GitHub para informar se o mesmo é válido. Com todo o formulário validado, clique em “Continue”.

Escolha se deseja receber informações via email e clique em “Continue”.

novo-usuario.jpg

Você será direcionado para realizar uma validação de que não é um robô (padrão para muitos sites) e um código será enviado para seu email. Insira o código recebido em seu email, e responda a algumas perguntas que serão realizadas. Selecione a opção “Free” ou “Gratuito” como opção para seu plano e continue.

Parabéns! Sua conta no GitHub está criada e pronta para ser utilizada.

git-principal.jpg

4. Instalar o GitHub desktop, ferramenta amigável para a utilização do git (Windows)

Como vimos anteriormente, o GitHub for desktop é uma ferramenta visual amigável, que facilita a utilização dos comandos git em nosso cotidiano. Este é um aplicativo gratuito para utilização e não exige compra de licença.

Se tratando apenas do primeiro artigo, vamos ficar apenas na instalação. Nos próximos artigos iremos explorar as fucnionalidade disponíveis na medida em que vamos aprendendo.

Acesse o link GitHub Desktop e baixe o arquivo de instalação.

github-desktop.jpg

Ao executar o instalador, não se preocupe, pois o processo de instalação será fácil e intuitivo. Ao abrir o programa pela primeira vez, faça o login na sua conta GitHub para que seja possível executar as operações que iremos olhar nos próximos artigos.

Conclusão:

O git será um grande companheiro em seu cotidiano no mundo do desenvolvimento. Tenha em mente que seu aprendizado não é considerado um adicional desejável, e sim, de uma ferramenta com frequente utilização. Seja através desta trilha ou outras fontes, estude muito para que sua operação com o git seja tranquila e fluida. E um último ponto muito importante. A cada operação no git que você executar, saiba o que está fazendo. Saiba o motivo de se sua execução e onde espera chegar com tal comando. Desta forma você terá e demonstrará segurança ao utilizar a ferramenta.

Em breve a parte 2!

Se você gostou do conteúdo, deixe um comentário ou uma reação para apoiar o projeto! Compartilhe com alguém e ajude a divulgar!

[ ]´s Degas