Como alternar entre problemas no seu repositório Git local

Como alternar entre problemas no seu repositório Git local

8 de June, 2020 0 By António César de Andrade
Click to rate this post!
[Total: 0 Average: 0]


Na minha jornada para o código aberto, deparei-me com uma situação simples (mas complicada) que pode te enganar se você fizer errado. E é isso que discutiremos neste artigo.

Participar da comunidade de código aberto significa que você está contribuindo para o desenvolvimento de software livre ou de código aberto. Existem muitas organizações que sempre recebem colaboradores em suas bases de código.

Para começar com o código aberto, você precisa ter um entendimento básico das ferramentas de controle de versão, como Git. Os colaboradores usam o Git para rastrear alterações nos arquivos do projeto e também ajuda as pessoas a coordenar seu trabalho nesses arquivos.

Pré-requisitos

  1. Ter Git instalado
  2. Tenha um entendimento básico do Git

Por que problemas?

Os problemas em um repositório podem ser usados ​​para acompanhar tarefas, idéias, bugs ou aprimoramentos do projeto em que você está trabalhando. Basicamente, eles fornecem uma descrição do que a tarefa implica.

Para resolver um problema, os administradores do projeto precisam atribuir esse problema específico a você. Dessa forma, outros membros da equipe saberão que alguém está trabalhando no problema.

Trabalhando em um problema

Para começar a trabalhar em um problema, você precisa fazer um clone ou cópia do repositório de destino usando o comando Git clone em sua máquina local.

git clone 

Crie um upstream que permita acompanhar as alterações mais recentes do upstream (ou seja, repositório original). Dessa forma, o Git mantém você informado quando houver alterações, para que você possa atualizar o repositório clonado.

git remote add upstream 

Para visualizar a lista de tarefas remotas e remotas disponíveis que podem ser executadas (busca e envio), digite:

git remote -v

Para manter-se atualizado com as alterações mais recentes, você sempre precisa tentar buscar no upstream. Dessa forma, você obtém todos os commits de todos os membros da equipe que também trabalharam em vários recursos.

git fetch /

No futuro, você precisará mesclar as confirmações de outros colaboradores no repositório local.

git merge /

O objetivo da mesclagem do Git é fazer com que a cópia local da ramificação mestre corresponda exatamente ao mesmo que a cópia upstream da ramificação mestre.

Em seguida, crie uma ramificação para o problema que lhe foi atribuído. Por que você tem que criar uma filial? E para que um ramo é usado? Vamos investigar mais.

Ramo Git

Uma ramificação fornece uma captura instantânea das alterações que foram feitas. Quando um commit é feito, o Git armazena as informações do commit. Isso fornece um ponteiro que pode ser usado posteriormente para referenciar ou rastrear as alterações que foram feitas. É por isso que é útil criar uma ramificação ao trabalhar em uma nova tarefa, correção de bug ou qualquer outro recurso.

Quando começamos, o Git nos fornece um ramo principal. O ramo mestre contém código de trabalho. Para evitar misturar suas alterações com o código de produção, você precisa criar uma nova ramificação.

Para criar uma ramificação, você precisa digitar o seguinte comando Git:

git checkout -b 

Este comando cria uma nova ramificação com base na ramificação atual, embora você também possa especificar a ramificação onde deseja que sua nova ramificação seja criada.

git checkout -b  

Para listar todas as ramificações disponíveis no seu repositório, digite:

git branch

Quando a tarefa em que você estiver trabalhando estiver concluída, envie as alterações no repositório local para revisão. Depois disso, crie uma solicitação de recebimento para notificar os administradores do projeto sobre o estado atual da tarefa atribuída.

git push -u origin 

Agora, como faço para trabalhar na próxima edição?

Crie um ramo diferente com um nome descritivo, como este:

git checkout -b  

Quando tivermos nossa ramificação, usaremos um comando utilitário de cubo. O comando nos ajudará a buscar o código do upstream e também executará a mesclagem (se você instalar o utilitário de hub).

hub sync

O comando recupera as alterações upstream e as funde com a ramificação recém-criada. Você sempre pode verificar se há alterações na sua filial e no upstream usando o comando Git status

git status

Agora você pode prosseguir e trabalhar na nova ramificação. Lembre-se de confirmar suas alterações e enviar para a ramificação remota, como fizemos acima.

Erros que você pode fazer.

Você pode cometer um erro ao trabalhar em vários problemas – o que pode levar à exclusão de confirmações de uma ramificação.

Aqui está uma amostra do que pode ser feito para apagar confirmações indesejadas de uma ramificação:

Passo 1: Mude para o ramo em que você deseja remover confirmações indesejadas:

git checkout 

Passo 2: Execute os registros de confirmações feitas na ramificação. Isso ajudará você a decidir quais confirmações você gostaria de manter com base no único Confirmar hash (Soma de verificação SHA1 de 40 caracteres do conteúdo confirmado) geralmente desta forma: da034f6ff3e856b5ba155bc01def0847a1c4ed7e.

git log

Também é importante notar que, se você deseja manter o commit mais recente (digamos o último), basta fazer o seguinte:

git log -n 1

Etapa 3: Como você deseja descartar todas as outras confirmações nessa ramificação, basta aplicar essa única confirmação à ramificação. Descartar e aplicar são duas etapas:

Primeiro, descarte todas as confirmações na ramificação com:

git reset --hard /

Em termos simples, o comando acima diz ao Git para jogar fora todas as mudanças organizadas e não organizadas. Ele esquecerá tudo no ramo local atual e fará exatamente o mesmo que o upstream/master.

Segundo, aplique essa confirmação única à ramificação com o comando:

git cherry-pick Hash

//where Hash is a commit hash from other branch

Esse comando seleciona uma única referência (ou seja, confirmação) por padrão de uma ramificação e a aplica a outra.

Passo 4: Quando você corre git status relatará que sua filial / divergiu. Como é esperado, precisamos forçar o controle remoto a conter apenas as alterações que escolhemos.

Para fazer isso, precisamos usar um comando para ajudar a apagar o histórico remoto e substituí-lo por um histórico diferente:

git push --force origin

Este comando descartará as confirmações extras no controle remoto, assim como descartamos as confirmações extras na cópia local. Isso é perigoso porque é um dos poucos comandos git que descartará algo – portanto, tenha cuidado ao usá-lo.

Agora, quando você corre git status relata que a filial está atualizada com /. Isso mostra que a operação foi realizada com sucesso.

Obrigado por ler 🎉! Grande grito para Mark Waite👏

Siga-me no Twitter.





Fonte