Você está na página 1de 5

Contextualização

O objetivo desse documento é fornecer um entendimento básico sobre o Git e sobre o fluxo
de trabalho que deve ser seguido ao utilizar essa ferramenta no desenvolvimento de
software.

O que é o Git
Git é um sistema de controle de versão de arquivos. Através deles podemos desenvolver
projetos na qual diversas pessoas podem contribuir simultaneamente no mesmo, editando e
criando novos arquivos e permitindo que os mesmos possam existir sem o risco de suas
alterações serem sobrescritas.
O objetivo do git é tornar a colaboração entre desenvolvedores mais fácil e estabelecer um
controle efetivo de versão e mudanças no sistema.

Conceitos básicos

Repositório
O repositório é o local onde o código do sistema fica armazenado. Temos o conceito de
repositório local e de repositório ¨virtual¨. O repositório local nada mais é do que a pasta
onde os arquivos do projetos estão armazenados em seu computador. O repositório
¨virtual¨, por sua vez, é o repositório online onde fica armazenada a última versão enviada
por meio de um commit e também o histórico de mudanças e versões do sistema.

Branch
No Git é possível que várias pessoas trabalhem juntas e, eventualmente, essas pessoas
irão precisar modificar partes do código sem desejar colocá-lás ¨em produção¨ antes de ter
certeza que estão estáveis. Nesse contexto surge o branch.
Um branch nada mais é do que um caminho alternativo de desenvolvimento, utilizado para
desenvolver funcionalidades isoladas uma das outras. Um exemplo clássico é que todo
sistema tem pelo menos dois branchs, o de desenvolvimento e o de produção. Enquanto o
de produção tem tudo que o cliente poder ver e utilizar o de desenvolvimento tem features
novas que estão em fase de testes e são utilizadas apenas pelos desenvolvedores.

Commit
Podemos imaginar o commit como sendo um pacote de mudanças. Ou seja, após
alterarmos uma série de arquivos em nosso repositório local nós criamos um commit e
enviamos para o repositório online do git. Esse commit fica armazenado no histórico de
mudanças e tem um nome e responsável atribuído a si, como por exemplo: ¨mudança no
layout da página, feito por Lucas Rolim no dia 12/11/2017¨.

Fluxo de trabalho sugerido


O fluxo de trabalho sugerido para utilizar o Git é algo semelhante a:
OBS: cada etapa serão dados exemplos ilustrativos, mas isto não significa que
necessariamente os mesmos repositórios devem ser clonados ou os mesmos nomes devem
ser utilizados. Além disso, diversos outros comandos não mencionados estarão explicados
na seção ¨Comandos Básicos¨.
1. Clonar o repositório do Gitlab a ser utilizado
git ​clone​ https://<url>

2. Criar um novo branch para o desenvolvimento de uma funcionalidade. Esse novo


branch de preferência deve seguir um padrão de nomenclatura para manter a árvore de
modificações com fácil leitura, especificando a área (feature/<area-name>/<branch-name>).
git branch feature/controle/controle_pid

3. Desenvolver novas funcionalidades localmente

4. Verificar mudanças que foram feitas


git status

5. Adicionar arquivos que foram alterados ao commit a ser enviado para o repositório
do Git
git add <nome do arquivo a ser inserido no commit>

6. Criar um commit para ser enviado para o repositório online do git


git commit -m ​"breve mensagem explicando o que foi feito desde o
último commit"

7. Enviar o commit para o repositório do git


git push

Dessa forma você terá sempre um branch de desenvolvimento bem versionado e


atualizado. Seguindo esse fluxo de trabalho suas mudanças ​NÃO​ estão indo diretamente
para a versão principal do projeto. Contudo, elas ficarão disponíveis no repositório do git
para que todos os outros membros da equipe possam ver e comentar.
Para que a sua branch seja incorporada no código é necessário um ir na aba de branchs
onde está seu branch e realizar um ¨Merge Request¨. Dessa forma seu pedido será
avaliado por algum outro membro sênior da equipe e depois de aceito irá para a versão
oficial do nosso código.
Para um melhor entendimento das variações que esse fluxo de trabalho pode ter,
leia a seção de comandos básicos do Git.

Comandos básicos
Comandos de criação de repositório
Clona um repositório existente
git ​clone​ <nome-do-repositório>
Faz a cópia de um diretório que está ¨hospedado¨ em locais como GitLab ou GitHub, como
por exemplo os repositórios da Palouse.

Criar um novo repositório


git init
Inicia o processo de criação de um repositório no Git com base no repositório local onde o
comando foi executado.

Comandos para verificação de mudanças locais


Verificar se existem divergências
git status
Retorna os arquivos do seu diretório local que estão diferentes dos arquivos que estão no
diretório do git.

Verificar quais são as divergências


git diff <nome do branch>
Retorna quais mudanças foram feitas em seus arquivos locais em relação a um
determinado ramo de desenvolvimento do Git. Caso o nome do ramo não seja fornecido, o
padrão é verificar as diferenças com o master.

Adicionar mudanças para serem commitadas


git add *

ou

git add -p <nome arquivo a ser commitado>


Ambos os comandos são possíveis e adicionam mudanças na ¨fila de commit¨. Contudo, o
primeiro comando (git add *) deve ser evitado sempre que possível. Isso porque ao utilizar
esse comando existe um alto risco de incluir no commit arquivos não desejados de maneira
acidental, de modo a ¨poluir¨ o repositório e até mesmo ocasionar alguma falha de
segurança.

Criar um commit
git commit -m ​"menssagem descritiva das mudanças feitas"
Cria um commit para ser enviado ao repositório do git.

Altera o último commit


git commit --amed
Esse comando altera o último commit que está na pilha para ser enviado para o repositório
no git. Contudo, é necessário ressaltar que esse comando ​NÃO​ altera commits que já foram
enviados para o repositório.

Comandos relativos a branchs

Listar todos os branchs existentes


git branch -av

Mudar o branch em que se está trabalhando


git checkout <nome do branch para o qual deseja mudar>

Criar um novo branch


git branch <nome ​do​ novo branch>

Comandos para update do repositório do git

Adicionar um novo repositório para serem enviados commits


git remote add <nome repositorio> <url repositório>

Faz update do repositório local para que fique igual ao que está no Git
git pull <nome repositorio> <nome branch>
Esse comando pode ser utilizado sem os seus argumentos *(somente ¨git pull¨)*. Nesse
caso ele irá atualizar seu repositório local para a versão do git correspondente ao diretório e
branch em que você está trabalhando atualmente.

Envia um commit para o repositório do git


git push <nome repositorio> <nome branch>
Assim como o comando de pull, os argumentos desse comando podem ser fornecidos ou
não. Para os argumentos omitidos o Git irá preencher automaticamente coma informação
do repositório/branch que se está trabalhando atualmente

Comandos para desfazer mudanças

Descartar mudanças locais


git reset --hard HEAD
Descarta TODAS as mudanças feitas localmente. Esse comando deve ser usado apenas
quando o intuito é voltar o código em que se está trabalhando exatamente para o estado em
que ele está no repositório do git.
Descartar mudanças em um arquivo em específico
git checkout HEAD <nome arquivo>
Descarta as mudanças feitas em um arquivo em específico. Ou seja, esse arquivo em
específico voltará a ficar exatamente como está no repositório do git. Os demais arquivos
irão manter eventuais mudanças feitas localmente e não commitadas.

Você também pode gostar