Git | Branches e Ponteiros

Lilian Lima
Devs JavaGirl
Published in
2 min readJun 13, 2019

Essa é a terceira publicação de uma série onde compartilho como as coisas acontecem nos bastidores do Git.

No Git quando você clona o repositório remoto para seu ambiente de desenvolvimento local automaticamente esse ambiente irá apontar para a branch principal, master.

Ao iniciar seus trabalhos é aconselhável que se crie uma branch apartada para sua feature, essa nova branch será uma cópia da branch a partir da qual você a criou e considerando o estado do último commit realizado.

Pense que no git branches são ponteiros, ponteiros para uma série de commits. Ao criar uma branch você passa a ter um ponteiro para um determinado commit, portanto ao realizar um novo commit você terá um novo ponteiro e o HEAD, que é o estado atual do seu repositório local, apontará para a branch e commit nos quais você está no momento, para auxiliar a compreensão considere que acabou de clonar um repositório remoto e o HEAD está apontando para a branch principal:

Ao executar git checkout -b <nome da branch> o HEAD passará a apontar para a nova branch e último commit realizado na branch a partir da qual esta última foi criada:

No workflow local do Git as áreas Working Directory e Staging Area não se relacionam às branches, isso passa a ser considerado após o git commit.

Até então estamos trabalhando localmente, caso executemos um git push nessa nova branch receberemos um erro similar a esse:

Isso ocorre, pois, o seu repositório local não possui uma branch com o mesmo nome (upstream) no repositório remoto com a qual possa se ligar.

Conforme sugerido no console, podemos executar git push — set-upstream origin minha-feature, e empurrar as alterações para o repositório remoto. Isso fará com que a branch minha-feature seja criada no Repositório Remoto e a ligará à branch com mesmo no repositório local. Ao acessar o repositório remoto a nova branch estará disponível lá para os demais.

Referência: https://dev.to/unseenwizzard/learn-git-concepts-not-commands-4gjc

--

--

Lilian Lima
Devs JavaGirl

{“ocupação”: “software engineer”, “idioma computacional”: “java”, “um hobby”:” escrever”,” um valor”:” justiça social”, “um amor”: “minha família 💙”}