GIT

O GIT é um sistema de controle de versões.  Apesar de parecer uma ferramenta muito complicada, não é nenhum bicho de sete-cabeças, e irá te ajudar muito no desenvolvimento do seu robô, na organização do código.

*Antes de tudo, algo muito importante:  GIT ≠ GITHUB. Enquanto o primeiro é o sistema de controle de versões propriamente dito, o segundo é um site para controle de versões, usando o GIT.  No GITHUB, pode-se encontrar diversos códigos e projetos Open-Source, que podem te ajudar, também, no desenvolvimento do robô. Isso tudo ficará mais claro, assim que você começar a aplicar e entender o funcionamento de ambos.

Você precisará baixar e instalar o GIT:
https://git-scm.com/downloads

Com isso, podemos começar a entender como o GIT funciona e como podemos usá-lo.

Primeiro, precisamos entender POR QUE o GIT é útil. Imagine que você trabalha, junto com uma equipe, no desenvolvimento de um programa. Sem o GIT, é muito mais complicado o trabalho em equipe, já que:

1) Mais de uma pessoa trabalham no mesmo código, editando-o e salvando em diferentes repositórios, o que, no final, vira uma verdadeira confusão.

2) Não se tem ideia do histórico de modificações. Mesmo trabalhando sozinho, fica bem confuso. Não dá para saber qual é o programa mais recente, qual tem determinada funcionalidade e qual funciona da melhor forma.

Tendo uma visão geral da utilidade do GIT, podemos seguir entendendo o sistema:

Resultado de imagem para git version control

A imagem acima é uma representação do sistema de controle de versões. Entenda que cada bolinha é uma versão do código, com modificações da anterior. Cada "ramo" seria um branch, um caminho diferente a ser seguido, com outras funcionalidades, que podem ser ou não juntadas ao "ramo" principal, o branch Master. Dessa forma, várias pessoas podem trabalhar no mesmo código, salvando as diferentes versões dele, que podem ser facilmente encontradas posteriormente.


Vamos entender o fluxo de trabalho:
Workspace: onde o arquivo é modificado
Staging: área temporária de armazenamento do arquivo
Local repository: área que aponta para o último commit (modificação) que você fez.
Remote repository: repositório remoto, que fica em um servidor onde todos os membros da equipe podem acessar. Um repositório remoto pode ser salvo no GIT HUB, que é a plataforma mais usada para isso, por ser simples de usar e por permitir o compartilhamento de projetos open source*.

*Open Source: termo em inglês para código aberto. É um tipo de projeto que pode ser modificado e aceita a colaboração de qualquer um, para ter outras funções ou para corrigir erros e bugs.

Os seguintes comandos devem ser digitados no terminal do sistema, ou no git bash (que vem junto com a instalação do git).
Obs.: importante ter uma noção de como navegar entre os arquivos no terminal do seu sistema, além de algumas funcionalidades básicas. Mas não se preocupe, isso se aprende com o tempo e uso.

  1. Criar um novo repositório: git init
  2. Criar uma cópia de trabalho de um repositório remoto: git clone usuário@servidor:/caminho/para/o/repositório
  3. Os comandos para mover entre repositórios estão mais bem explicados na imagem acima. Não tente ficar gravando: caso não saiba quais parâmetros colocar, apenas digite git "função", que o próprio terminal irá dizer os parâmetros certos. Se esquecer de algum, use git help.
  4. Navegar entre branches ou criar novos branches: git checkout
  5. Dar merge (isto é, juntar) um branch com o branch ativo: git merge
  6. Checar o status do branch ativo: git status
  7. Ver diferenças entre arquivo no workspace e no staging: git diff
  8. Ver diferenças entre arquivo no workspace e no local repository (HEAD): git diff HEAD