Como organizar seu projeto de desenvolvimento de software com Git e Github

Como organizar seu projeto de desenvolvimento de software com Git e Github

Por que usar um sistema de controle de versão? (Motivação)

Uma maneira de se trabalhar um projeto realizado em grupo é utilizar uma pasta compartilhável em um sistema de armazenamento na nuvem (como Google Drive, Dropbox) e inserir os arquivos utilizados para que toda a equipe possa acessar. A cada modificação por alguém da equipe, o mesmo arquivo seria atualizado por completo, criando diversas “versões”, porém apagando as antigas e sempre visualizando a mais atual. Dependendo da área e dos tipos de arquivos, pode ser uma boa solução. Porém, em especial para desenvolvedores de software, compartilhar arquivos de código com várias pessoas, e modificando-os de maneira mais dinâmica, pode ser um pouco confuso e, futuramente, com o aumento do projeto, pode acarretar em problemas sérios.

Uma solução para esse problema é utilizar um sistema de versionamento de código (version control system). É uma ferramenta de software com a finalidade de gerenciar alterações em seu código (ou de outro tipo de documento) com o passar do tempo. Basicamente, ele “tira fotos” de um momento de seu código, e cria uma linha do tempo conforme você e outras pessoas do seu projeto vão alterando o mesma ou diferentes partes de código.

As vantagens de usar um sistema de controle de versão são:

  • Existência de um histórico de alterações completo de todos os arquivos de seu projeto, com informações relevantes a cada modificação (autor, data, notas relevantes), podendo voltar a versões anteriores para corrigir problemas;
  • Existência de um sistema de ramificação e mesclagem inteligente de código. Diferentes desenvolvedores podem trabalhar separadamente e em partes diferentes do projeto, e o sistema de versionamento de código lidará com as diferentes ramificações do projeto para cada desenvolvedor, facilitando também na hora de juntar (merge) diferentes ramificações.code

O que é Git?

Git é um do sistema de controle de versão criado em 2005 por Linus Tovalds (mesmo criador do kernel do sistema operacional Linux), e é o sistema mais utilizado no mundo, tanto por empresas e projetos comerciais quanto open-source (código-aberto). Ele tem desempenho otimizado, grande segurança e boa flexibilidade para diferentes tipos de projetos e fluxos de trabalho.

Mesmo com todas essas vantagens, nem tudo é perfeito. A desvantagem ou crítica do Git é sua dificuldade no aprendizado, não sendo muito “beginner-friendly” (amigável para inciantes) devido a terminologias específicas e uso do terminal. Porém, como a comunidade abraçou esse sistema de controle de versão, não é difícil encontrar tutoriais de diferentes tipos e linguas pela internet. E também, qualquer problema que houver durante o uso do Git, só procurar o erro no StackOverflow que certamente terá uma resposta para te ajudar.

github

E o Github?

O Github é uma plataforma para gerenciar seu código remoto (na nuvem) utilizando o Git como sistema de versionamento de controle. Lá, você vai armazenar seus projetos em repositórios, podendo visualizar com mais detalhes e maior facilidade as funcionalidades do Git de seu projeto, além de poder compartilha-lo com os demais desenvolvedores de sua equipe. Existem outras plataformas de gerenciamento de código por Git (ou outros sistemas), como o Gitlab.

Primeiros passos e comandos

Primeiramente, é necessário instalar o Git em seu computador. Existem diferentes maneiras de se instalar o git conforme seu sistema operacional (MacOS, Windows ou Linux/Unix). Recomendo entrar no site https://git-scm.com/downloads para mais informações.

Nesse artigo, irei explicar o uso do Git e Github utilizando a linha de comando, mas também existem diversos clientes GUIs (Interfaces gráficas do utilizador) que facilitam o uso e comunicação do git com o Github. Mais informações em https://git-scm.com/downloads/guis

Para iniciar o Git em um projeto, é preciso acessá-lo pela linha de comando e digitar git init. Uma pasta “.git” será criada junta aos outros arquivos de seu projeto, e irá monitora-los.

Um conceito importante para a melhor visualização do funcionamento do Git é sobre os estados. Localmente (em seu próprio computador), um arquivo pode estar em 3 estados: modified (modificado), staged (preparando) ou committed (commitado ou “comprometido”). Assim, um fluxo de trabalho básico Git é:

  • Um arquivo é modificado no seu diretório/pasta (estado modified), porém ainda não foi adicionado à lista de alterações do próximo commit.
  • Utilizando o comando git add , o arquivo entra em estado staged.
  • Utilizando o comando git commit , move-se os arquivos para o estado commited.

git states

Nessa etapa, já é possível enviar os arquivos em estado commited para um repositório remoto, como o Github por exemplo. Lá, você criará uma conta gratuita e criará um repositório. Com o comando git push, enviará os arquivos do local (seu computador) para o remoto (servidor do Github). Assim, poderá compartilhar esse repositório remoto para sua equipe que, utilizando os comandos git clone e git pull, terão uma cópia do projeto no computador local deles (eles também devem ter o Git instalado em seus computadores).

É ideal que todos da equipe estejam confortáveis com seu uso e também discutam sobre o melhor jeito de organizar o workflow do Git e Github para garantir o melhor uso deles. Dependendo, é possível até mesmo a equipe do marketing, produto, designers e suporte ao cliente recorrerem ao sistema Git para melhor organização do projeto e trabalho.

Mais informações sobre o uso do Git e do Github:

ESCREVER UM COMENTÁRIO

Enter your keyword