Guia Prático de Git: Autenticação SSH, Push e Resolução de Conflitos no Gitee

![CDATA[

Configuração de acesso SSH ao Gitee

Antes de intreagir com repositórios remotos, é fundamantal configurar a autenticação por chave SSH. Siga os passos:

  1. Gerar par de chaves: Execute no terminal o comando abaixo, substituindo o e-mail.
ssh-keygen -t rsa -b 4096 -C "usuario@exemplo.com"

Os arquivos gerados serão ~/.ssh/id_rsa (privada) e ~/.ssh/id_rsa.pub (pública).

  1. Adicionar a chave pública ao Gitee: Exiba o conteúdo da chave pública com:
cat ~/.ssh/id_rsa.pub

Copie todo o texto mostrado. Acesse o Gitee, vá em Configurações > Chaves SSH > Nova chave. Cole o conteúdo e defina um título (ex.: "Meu PC"). Salve.

  1. Iniciar o agente SSH e adicionar a chave:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

Enviando um projeto local para o Gitee

Considerando que você ainda não possui um repositório remoto, siga as instruções abaixo.

Criação do repositório no Gitee

Faça login no Gitee, clique em "Novo repositório" e preencha o nome (ex.: meu-app). Defina a visibilidade e clique em "Criar".

Inicialização local e primeiro commit

cd /caminho/do/seu/projeto
git init
git add .
git commit -m "Primeiro commit"

Vinculando o remoto e enviando

Na página do repositório recém-criado, copie a URL (SSH ou HTTPS). Exemplo:

https://gitee.com/usuario/meu-app.git

Adicione o remote e faça o push (considerando que a branch padrão é main):

git remote add origin https://gitee.com/usuario/meu-app.git
git push -u origin main

Clonando um projeto existente

Para obter uma cópia local de um repositório remoto, use o comando clone.

cd ~/projetos
git clone git@gitee.com:usuario/repo-exemplo.git
cd repo-exemplo

Explore as branches:

git branch       # branches locais
git branch -r    # branches remotas

Para trabalhar em uma branch específica (ex.: funcionalidade), crie e acompanhe a remota:

git checkout -b funcionalidade origin/funcionalidade
git pull origin funcionalidade

Após realizar alterações, faça o commit e envie:

git add .
git commit -m "Ajustes na funcionalidade"
git push -u origin funcionalidade

Resolvendo conflitos durante o merge

Se ao tentar enviar suas alterações ocorrerem conflitos com o remote, execute os passos a seguir para resolvê-los.

Primeiro, crie um branch temporário baseado no remote para trazer as últimas mudanças sem afetar seu trabalho atual:

git checkout -b branch-atualizacao origin/main

Retorne ao branch de destino (ex.: main) e mescle o branch temporário:

git checkout main
git merge branch-atualizacao

O Git indicará os conflitos. Verifique os arquivos afetados:

git status

Exemplo de saída:

Unmerged paths:
  both modified:   src/main/java/br/loja/api/PedidoController.java

Abra o arquivo conflitante e localize as marcações <<<<<<<, ======= e >>>>>>>. Exemplo:

<<<<<<< HEAD
public String obterStatus() {
    return "Ativo";
}
=======
public int obterStatus() {
    return 1;
}
>>>>>>> branch-atualizacao

Edite o código deixando apenas a versão desejada. Por exemplo, mantendo a primeira:

public String obterStatus() {
    return "Ativo";
}

Adicione o arquivo corrigido à área de stage:

git add src/main/java/br/loja/api/PedidoController.java

Faça o commit da resolução:

git commit -m "Resolve conflito de merge"

Envie as alterações para o remote:

git push -u origin main

]]>

Tags: Git Gitee SSH resolucao-de-conflitos controle-de-versao

Publicado em 10-22 12:38