Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • N nutritechWiki
  • Project information
    • Project information
    • Activity
    • Labels
    • Planning hierarchy
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Nutritech
  • nutritechWiki
  • Wiki
  • Configuracoes
  • git

Last edited by Gabriel Henrique Paul Apr 17, 2018
Page history
This is an old version of this page. You can view the most recent version or browse the history.

git

Home Sprints Requisitos Arquitetura Configuração Endpoints Mockups Problemas

Visão Geral

O projeto é divido em 3 repositórios:

  • nutritechWiki: repositório da wiki deste projeto (você está aqui 😄);
  • nutritechFront: desenvolvimento do front end;
  • nutritechAPI: desenvolvimento da REST API;

Setup do git

  • Notebook da AGES

Os computadores da AGES já vem com git instalado, portanto, basta clonar o repositório desejado.

  • Notebook pessoal

Se você estiver com seu computador pessoal, instale o GitBash e tudo deve vai funcionar.

Tutorial de Git (Got 15 minutes and want to learn Git?)

Mini tutorial do GitHub ensinando os básicos para a utilização do Git Bash ou terminal do linux, tutorial direto no browser. https://try.github.io/levels/1/challenges/1

A simple git branching model

Neste projeto usaremos "A simple git branching model" como gitflow, como o nome indica é um flow bastente simples, entretanto funciona muito bem.

O nosso gitflow consiste em criar branchs de features para desenvolver novas features e branchs de fix. Estar branchs serão eventualmente combinadas à branch dev.
Todos nossos merges serão feitos na branch dev e a cada entrega os arquitetos da equipe a integrarão à branch homo.

Passos detalhados do nosso fluxo utilizando o GIT bash:

Antes de qualquer coisa precisamos clonar o repositório para isso vamos ao repositório que queremos clonar, pegamos o endereço deles e utilizamos o comando

git clone <REP_URL>

Para clonar o repositório do front-end, por exemplo, utilizamos o seguinte comando:

git clone -b dev http://www.tools.ages.pucrs.br/gastronomia/nutritechFront
(Note que utilizamos "-b dev", este parâmetro faz com que clonemos o projeto na branch dev)

Começando a desenvolver uma task

Bom, agora temos nosso repositório, antes de começarmos a trabalhar precisamos garantir que estamos na branch correta e estamos com a versão mais atual do projeto. Para isso usaremos os seguintes comandos:

git fetch
(Este comando irá atualizar o remoto)

git checkout dev
(Este comando vai fazer com que mudemos para a branch dev)

git pull
(Caso a versão local da branch esteja desatualizada este comando irá aplicar as alterações novas)

Neste momento temos o repositório atualizado então vamos começar a trabalhar em uma nova feature, para isso criaremos uma branch de feature com este comando:

git checkout -b feature/<TASK_NAME>
(Note que TASK_NAME seria o nome da feature que você irá desenvolver)

Agora estamos prontos para começar a codar. Yay! 🤓 Para que nosso flow funcione muito bem usaremos commits atômicos e incrementais, ou seja, criaremos um commit para cada vez que tenhamos uma mudança funcional no código.

Salvando suas alterações

O fluxo para criar commits é o seguinte:

git status
(Para visualizar quais arquivos foram alterados)

Agora podemos adicionar apenas os arquivos que desejamos ao commit, ou adicionar todos.

git add <FILE_PATH>
(Para adicionar um arquivo específico)

git add .
(Para adicionar todos os arquivos alterados)

Criar um commit com as suas alterações

git commit -m "<COMMIT_MESSAGE>"

Ufa! Terminamos nosso trabalho de desenvolvimento, mas e agora?! No nosso projeto não utilizamos pull merge request para com a branch de desenvolvimento, isto significa que todos nós somos responsáveis por lidar com merges. Para isso realizaremos os seguintes passos:

Primeiramente vamos enviar pro remoto a nossa branch:

git push origin feature/<TASK_NAME>

Agora que temos a branch no remoto iremos passar para a branch de dev e garantir que ela está atualizada, pois como existem outras pessoas no projeto existe a possibilidade da nossa dev já ter novos commits.

git checkout dev
(Troca para a branch dev)

git fetch
(Atualiza o remoto)

git pull
(Aplica as novas atualizações na dev)

Neste momento estamos com nossa dev atualizada, o próximo passo é aplicar os novos commits da dev na nossa branch antes de realizar o merge para a dev:

git checkout feature/<TASK_NAME>
(Para voltar à nossa branch de feature)

git rebase dev
(Este comando aplica as alterações novas na nossa branch)

Com o rebase, podem ser que existam problemas de merge, então você deve terminar resolver os conflitos e aplicar utilizando git rebase --continue

Se tudo der certo com o rebase estamos prontos para aplicar o merge na branch de dev.

git checkout dev
git merge feature/<TASK_NAME> --no-ff
(Note que usamos o parâmetro --no-ff ele serve para que o merge mantenha o tracking da branch que foi unida com a dev)

Feito isso, idealmente testamos todo o sistema pra ver se nada foi quebrado nos merges e se tudo estiver ok iremos subir a nova versão para o remoto com o seguinte comando:

git push origin dev

Se houverem conflitos:

Resolver conflitos usando o Visual Studio Code ou sua ferramenta de preferência.
Adicionar arquivos conflitantes corrigidos
git add <FILE_PATH>
Dar git rebase --continue
Repetir esses passos até que todos os conflitos sejam resolvidos

Não tenha medo de usar o git e também não hesite em pedir ajuda à algum colega de projeto, lembre que todos já passamos por alguns vários problemas de git e todos aqui estamos trabalhando por um propósito em comum, o autor desta página se coloca a disposição para qualquer dúvida.

Clone repository
  • Arquitetura
  • Requisitos
  • angular
  • configuracao
  • configuracoes
    • Diagrama ER
    • IntelliJ
    • git
    • wiki
  • daily
  • endpoints
  • Home
  • mockups
  • planilha de horarios e contatos
  • problemas
  • sprints