Skip to content

Latest commit

 

History

History
236 lines (172 loc) · 8.06 KB

File metadata and controls

236 lines (172 loc) · 8.06 KB

git logo Workflow

Conteúdo

  1. Repositórios
  2. Desenvolvendo

Repositórios

Definição

Repositórios são pastas que possuem gerenciamento de versão através do git, ou seja, diretórios com git inicializado.

Ciclo de projeto

O fluxo do código nos repositórios é o mesmo em todo projeto.

  • Primeiramente, os arquivos alterados são transferidos da máquina local do desenvolvedor(a) ao seu repositório remoto pelo comando git push. (seu repositório remoto fica localizado em https://github.com/{username}/{projeto})
  • Após isso, o desenvolvedor precisa criar um pull request, referenciando infojr/{projeto} branch ⬅ username/{projeto} branch, como exibido na imagem abaixo, para que a alteração existente em seu repositório remoto seja transferida também ao repositório central de forma com que todos os membros consigam baixar a atualização em seus repositórios locais.

  • Com o repositório central atualizado, qualquer membro pode baixar as atualizações com o comando git pull e continuar o desenvolvimento do projeto e dando início a esse ciclo novamente.

Observação: Nunca envie sua atualização diretamente ao repositório central sem passar pelo remoto, o ciclo é essencial para revisões e possíveis reversões.

Setup inicial

No início de cada projeto, é trivial seguir os seguintes itens:


Fork

Fork é a criação de um repositório cópia remoto a partir do central. Pode ser dado clicando no botão Fork como demonstrado na imagem abaixo:


git clone

Esse comando serve para clonar o repositório remoto para sua máquina.

$ git clone https://github.com/infojr/{projeto}

Dica: Se atente a executar esse comando no diretório onde está localizado o htdocs.


Definir repositórios remotos em sua máquina

Após executar a clonagem do repositório, você agora possui um repositório local, porém, ele ainda não está configurado para reconhecer qual é o repositório central e qual o remoto.

$ git remote set-url origin https://github.com/{username}/{projeto}
$ git remote add upstream https://github.com/infojr/{projeto}

upstream é o nome dado ao repositório central.

Caso tenha feito tudo certo, ao dar o comando git remote -v, o retorno do terminal deve estar semelhante à imagem abaixo:


Branches

Uma branch é uma ramificação no projeto para que uma nova funcionalidade seja implementada ou testada sem que o código-fonte principal e/ou o desenvolvimento dos demais desenvolvedores seja comprometido. Para projetos robustos, tais como SMA ou iCampus, a utilização de branches é essencial.

Análise da ramificação do iCampus

Comandos

Para checar em que branch seu projeto se encontra, execute:

$ git branch


Para mudar para uma branch em sua máquina, digite:

$ git checkout nome-da-branch

Após isso, todos os arquivos do seu computador serão alterados para os presentes na branch em questão automaticamente.


E caso a branch não exista, você pode criar uma a partir da sua atual digitando:
$ git checkout -b nome-da-branch

Dica: Atente-se a qual branch você está trabalhando. (central ou local)

Desenvolvendo

Após, o setup inicial e entender mais sobre o que são repositórios e como se comportam, agora vamos ver como enviar e baixar as atualizações do projeto.

Fluxo

O fluxo de desenvolvimento se resume basicamente em:

  • Sempre ao executar git commit:
    • Puxar atualizações. (git pull)
    • Verificar mensagem de retorno no terminal.
    • Se o git acusar conflito:
      • Resolver conflito
        Dica: Observe as linhas em que o git acusa conflito ou através da comparação feita pelo Visual Studio Code.
    • Executar git push.

git status

Esse comando nos informa quais arquivos foram alterados.

$ git status

Neste projeto, por exemplo, o arquivo workflow.md está diferente ao comparar o repositório remoto na branch master (origin/master).
Para que seja possível enviarmos ao repositório remoto, precisamos rastrear o arquivo pelo git, utilizando o comando:
$ git add pages/workflow.md

Esse comando fará com que o git adicione esse arquivo para a lista de arquivos alterados nesse futuro commit que iremos fazer.
Ao executar o comando git add, é possível ver que agora o git já reconhece o arquivo como pronto para ser comentado.

Dica: É possível executar o comando git add . para adicionar todos os arquivos modificados como prontos a serem comentados. Para remover arquivos do estágio, é possível executar git reset {arquivo} ou git reset .

git commit

Devemos comentar todos os arquivos adicionados utilizando git add de modo claro e objetivo para que todos os membros da equipe saibam do que a alteração em questão se trata.

$ git commit -m "Alteração do estilo do rodapé"

git pull

Para puxarmos as atualizações do repositório central ao nosso local, executamos o seguinte comando:

$ git pull {nome do repositório remoto} {branch local}

Caso tenha feito tudo conforme essa seção, execute:

$ git pull upstream master 

git push

Após comentarmos nossa atualização, devemos enviá-las para o repositório remoto. Utilizamos:

$ git push 

Importante: Antes de executar esse comando, verifique se algum outro colega enviou uma alteração utilizando git pull


Não é possível executar git push ou git pull com arquivos sem commit


Pull request

Um pull request é uma solicitação de alteração no repositório central.
Após executar o git push, é necessário criar um pull request para que seu código seja mesclado com o principal.

Como descrito na seção ciclo de projeto, você deve referenciar o repositório e a branch para comparação e assim, criar o pull request.

Novamente, coloque um título claro e objetivo e adicione uma descrição caso necessário.
Falta pouco! Agora você só precisa clicar em Merge pull request para que seu código seja mesclado com o repositório central.

E...

Mesclado!


Dúvidas?

Git não é uma ferramenta fácil de aprender, possui uma curva de aprendizado grande. Não tenha vergonha de perguntar!
Nesse tutorial estão apenas algumas funcionalidades essenciais do git, você pode conferir toda a documentação aqui.