image

Accede a bootcamps ilimitados y a más de 650 cursos

50
%OFF
Article image

M

Marcella11/04/2025 22:29
Compartir
Microsoft Certification Challenge #3 DP-100Recomendado para tiMicrosoft Certification Challenge #3 DP-100

Versionamento de Código: Um Guia GIT

  • #GitHub
  • #Git

Ao trabalhar com programação, o montante de códigos gerados e rápidos upgrades são importantes durante a codagem, principalmente ao trabalhar com colaborações. Um código sendo acessado por diversas pessoas sem o devido controle e gestão é a recita para um caos. Com isso, uma boa prática de codagem é entender e documentar as alterações realizadas para si como para quem vai utilizar seu software ou aplicação. Para isso, o versionamento de código é essencial para fazer esse controle, e o Git é uma ótima ferramenta para te deixar informado e por dentro de tudo que rola no seu repositório e nos seus códigos. Com isso, vou abordar o que seria esse versionamento, sobre o git, e um básico para começar o versionamento dos seus códigos.

1. Versionamento

O versionamento de código é uma maneira de controlar as versões de um arquivo ao longo do tempo, pois permite controle do que está sendo realizado, além de segurança, ao manter as versões salvas.

Para tal, existem os Sistemas de controle de Versão, responsáveis por esse controle, bem como por:

           - registrar o histórico de atualizações do arquivo

           - gerenciar as alterações, data, autor, conteúdo

           - organização, controle e segurança dos seus códigos

O versionamento de código pode se dar de dois tipos:

Centralizado: quando um único servidor é responsável por isso, ao utilizar com um colaborador, os dois vão usar o mesmo servidor e a área de trabalho conectada a ela.

O bo é se ficara fora de ar o servidor, perde as atualizações feitas que ainda não foram salvas.

Descentralizado: o banco de versão é duplicado, e permite que trabalhe offline (sem o servidor conectado) o que possibilita um fluxo de trabalho flexível. Já que há um servidor local quanto remoto.

Exemplo desse modelo é o Git, por isso se torna bem interessante e mais usado.

2. Git

É um sistema de controle distribuído, Open source (código aberto). Que possui como características de destaque seu modelo de branchs (ramificações) e mergings (fusões) eficientes que permite melhor fluxo de trabalho. Além dele ser mais leve e rápido, ser um código aberto e gratuito e possuir uma área de teste ou índice, que é um diferencial.

image

E qual o fluxo básico ao utilizar o git:

git clone   #clona o repositório para o servidor local
git commit  #grava as alterações no seu repositório
git pull    #puxa as alterações do repositório remoto para o local (busca e mescla)
git push    #empurra as alterações do repositório local para o remoto (enviar)

3. GitHub

É uma plataforma de hospedagem de código-fonte e de arquivos com controle de versão com o Git e colaboração.

Possui uma comunidade ativa e é mundialmente utilizado

Diferença do Git para o GitHub

Se ainda não ficou claro, vamos lá:

Git: gerencia as versões dos códigos

Github: O servidor que hospeda os códigos no repositório remoto.

Entendendo sobre as branchs (ramificações) que são o destaque do Git.

As branchs permitem e incentivam você a ter várias ramificações locais que podem ser totalmente independentes umas das outras. Permitindo trabalhar em um código, modificando seus arquivos, linhas, sem influenciar no Branch principal. E se essa alteração já estiver consolidada, pode facilmente mesclar no Branch principal. Desse modo:

·      Permite flexibilidade e trabalho em grupo

·      Criar universos paralelos para poder ver se dar certo e poder add no branch main

·      Trabalha de forma independente

Essas branchs paralelas criadas só existem no repositório local, para enviar as alterações para o remoto, deve se seguir uma das etapas:

-Mesclar com a branch main

-conectar com o repositorio remoto e enviar as alterações (nesse caso ia forçar a nomeclatura da branch para main para prosseguir)

O ponteiro do git

O ponteiro do git sempre vai estar no main e vai apontar para o último commit(A), mas se eu tiver uma brach paralela, consigo fazer commits que não afetem a branch principal(B). Porque ao criar uma brach posso fazer commits e o ponteiro do git vai ficar nessa brach(C). Permite com que eu posso mesclar a Branch paralela com a main(D), ou excluir a Branch se quiser.

Aimage

B

image

Cimage

Dimage

CONFLITOS de BRANCHES

1-Conflitos de merges

É quando ocorrem alterações concorrentes, ou seja, 2 pessoas trabalhando e alteram a mesma linha de código e ao tentar enviar para o git, ele não entende quais alterações devem ser mantidas.

Nesse caso, deve-se decidir qual alteração deve ficar para poder enviar, e isso e feito localmente.

Guia rápido: Trabalhando com repositórios

Configuração Inicial

Após a instalação do software no site oficial Git. Deve-se realizar uma configuração do git bash para melhor atender as suas ações futuras.

Configurando o git bash here:

git config --global user.name <"name">
git config --global user.email <email>
git config --global init.defaultBranch main 

Autenticação

Essa é uma etapa de segurança para acessar o repositório. Para concluir essa etapa deve-se possuir um token, um cófigo especifico, limitado e aleatório que pode ser usado para clonar um repositório

  1. Conseguindo o token

Com sua conta do github criada, vá em settings> devolper settings> personal acess tokens> tokens (classic).

Nas configurações de token, peça para gerar um e você poderá usa-lo.

Atenção: ao sair da página você não conseguirá ver o token de novo, então copie-o e vamos para o git bash here.

Voce vai usar o seguinte comando para fazer um clone do repositório.

git clone repositorio <link_httsp do github>

Então irá pedir login no github, o user deve ser o seu user do github e a senha será o token criado.

E então o clone do repositório é realizado.

Trabalhando nos repositórios

git remoto add origin <url> #add o repositorio remoto ao local
git init #inicializar um repository dentro da pasta q quer
git clone <url novo>/nome #opcional-muda o nome do repositorio a ser clonando
git clone <url> --branch feature-1 --single-branch #seleciona um braço pra fazer o clone, se n especificar faz do main

 

Salvando alterações

git status #ver a arvore de trabalho (diz se tem arquivos para comentar, add)
git add file #add o arq na área de preparação (ainda n estar salvo)- para organizar antes de salvar
git commit -m "msg sobre o arquivo" #alterações para serem comentadas - salva no repositorio local
git log #exibe o commit feito (mostra o host, autor, email) - histórico 
git reflog  #exibe um histórico detalhado com todas as modificações 

Se eu modificar um arquivo, o git reconhece e pede para fazer um commit para salvar a alteração, se eu voltar o arquivo para a versão anterior, o git reconhece que foi à última versão salva sem precisar refazer o commit.

Desfazendo alterações

 rm -rf .git #faz com que se exclua o repositorio da pasta 
 git restore arquivo #retorna para a versão anterior salva, excluindo todas as alterações feitas antes de salvar em commit

Modificando commit

 git commit --amend -m""  	#para modificar o último commit feito
 git commit --amend	 #retorna para o editor onde editar a msg do último commit

 

Desfazendo commit

Três tipos de desfazer os commits: soft, mixed e hard.

git reset --soft host_commit #volta para o commit do host e os arquivos dos commit posteriores a ele ficam na área de preparação 

git reset --mixed host_commit #volta para o commit do host e os arquivos dos commits posteriores ficam na área de trabalho, mas o git ainda reconhece e tem q voltar a add na área de preparação 

git reset --hard host_commit #volta para o commit do host e os arquivos dos commit posteriores são apagados do repositorio

Enviando e Baixando alterações

  • Passar um repositório local para um remoto(conectar um repositorio existente)
git remote origin <url-do repositorio remoto>
  • Forçar a renomeação para branch main (só se você estiver com master- mas a gente já troca na configuração inicial esse nome)
git branch -M main
  • Enviar as alterações do repositorio local para o remoto
git push -u origin main 

u: set upstream, origin (nosso repositorio local), main(configura o q a gente ta enviando pra a branch main)

No repositorio remoto podemos fazer alterações e salvar commit pela interface web do GitHub.

Baixar as alterações/arquivos que foram feitas no repositório remoto para o local

git pull  #puxar as alterações do repositório remoto e mesclar com o que tem no repositório local

Remover arquivos da área de preparação

git reset arquivo
git restore --staged arquivo 

Criando Branch

git checkout -b teste (troca de branch)
  • Abranch teste começa a pontando para o msm commit da branch main, ate fazer um commit nessa branch
  • A branch teste continua com todos os arquivos

Trocando de Branch

git checkout main #volta pra branch main

Infos das Branchs

git branch -v #mostra o ulimo commit de cada branch

git branch #ver as branches

git branch -d teste #excluir a branch

Mesclando a Branch paralela com o main

 git merge teste #mesclar a branch teste com a main para aparecer os arquivos criados /alterados

 Clonar apenas uma branch

 

git clone <URL-rep> --branch teste --single-branch #clona unicamente essa branch teste, se n especificar a branch- vai clonar a branch main

Baixar os conteudos do repositorio remota sem mesclar com a local

 

git fetch origin main    #baixar as alterações

git diff main origin/main    #ver as diferenças das branchs

git merge    #trazer as alterações do repos remoto para local

 

Arquivar uma alteração (bom para criar uma nova bransh sem ir com alteções)

git stach  #arquiva o arquivo

Desarquiva a alteração

 git stach pop #pop: trazer as alterações e excluir a mais recente
 git stach apply #apply: manter a modificação na lista

E esse foi um guia rápido sobre o Git, passando pelo seu conceito e comando principais para iniciar a jornada com o GIT. Você já trabalhava com Git antes? Tem alguma dica ou outra funcionalidade interessante destacar? Vamos conversar pelos comentários. Pode salvar o post para mais tarde e vamosconversando. Deixe sua curtida e comentário para engajar o texto e mais programadores conhecerem essa ferramenta.

Até Logo.

Compartir
Recomendado para ti
Microsoft AI for Tech - GitHub Copilot
Microsoft Azure Cloud Native
XP Inc. - Cloud com Inteligência Artificial
Comentarios (0)
Recomendado para tiMicrosoft Certification Challenge #3 DP-100