Ramos e Integração com o Gitee

1. Comandos de gerenciamento de ramos

1.1 Visualizando ramos

O repositório padrão possui apenas um ramo chamado master.

# git branch
* master

O atserisco indica o ramo atual em que você está traablhando. Quando executado git init, o Git cria automaticamente o ramo master.

1.2 Criando novos ramos

# git branch novo_ramo
# git branch
* master
  novo_ramo

1.3 Alternando entre ramos

# git checkout novo_ramo
Switched to branch 'novo_ramo'

# git branch
  master
* novo_ramo

1.4 Desenvolvimento no novo ramo

# ls
arquivo1.sh  arquivo2.sh
# vim novo_arquivo.sh
# git add .
# git commit -m 'Adicionado novo arquivo'
[novo_ramo 123abc4] Adicionado novo arquivo
 1 file changed, 1 insertion(+)
 create mode 100644 novo_arquivo.sh
# ls
arquivo1.sh  arquivo2.sh  novo_arquivo.sh

1.5 Retornando ao ramo principal

# git checkout master
Switched to branch 'master'
# ls
arquivo1.sh  arquivo2.sh
# git branch
* master
  novo_ramo

Apenas ao alternar para o ramo novo_ramo é possível ver o novo arquivo.

1.6 Mesclando ramos

# git checkout master
Switched to branch 'master'

# git merge novo_ramo
Updating 567def8..123abc4
Fast-forward
 novo_arquivo.sh | 1 +
 1 file changed, 1 insertion(+)
 create mode 100644 novo_arquivo.sh

# ls
arquivo1.sh  arquivo2.sh  novo_arquivo.sh

2. Conflitos em ramos

Se dois ramos modificarem o mesmo arquivo na mesma linha, ocorre um conflito durante a mesclagem.

2.1 Criando outro ramo para provocar conflito

# git checkout -b outro_ramo
Switched to a new branch 'outro_ramo'
# echo "Conteúdo do outro ramo" >> arquivo2.sh
# git commit -m 'Alteração no outro ramo'
[outro_ramo 987fed6] Alteração no outro ramo
 1 file changed, 1 insertion(+)

# git log --oneline
987fed6 outro_ramo
123abc4 novo_ramo
567def8 versão inicial

2.2 Modificando o mesmo arquivo no ramo principal

# git checkout master
Switched to branch 'master'

# echo "Conteúdo do ramo principal" >> arquivo2.sh

# git add .
# git commit -m 'Modificação no ramo principal'
[master abc1234] Modificação no ramo principal
 1 file changed, 1 insertion(+)

# git log --oneline -4
abc1234 Modificação no ramo principal
123abc4 novo_ramo
567def8 versão inicial

2.3 Tentando mesclar os ramos

# git merge outro_ramo
Auto-merging arquivo2.sh
CONFLICT (content): Merge conflict in arquivo2.sh
Automatic merge failed; fix conflicts and then commit the result.

# git status
# On branch master
# You have unmerged paths.
#   (fix conflicts and run "git commit")
#
# Unmerged paths:
#   (use "git add <file>..." to mark resolution)
#
#    both modified:      arquivo2.sh
</file>

O conteúdo do arquivo após o conflito:

Conteúdo do ramo principal
Conteúdo do outro ramo
<<<<<<< HEAD
Conteúdo do ramo principal
=======
Conteúdo do outro ramo
>>>>>>> outro_ramo

2.4 Resolvendo manualmente o conflito

# cat arquivo2.sh
Conteúdo do ramo principal
Conteúdo do outro ramo
Conteúdo do ramo principal
Conteúdo do outro ramo

# git commit -m 'Resolvido conflito'
[master def5678] Resolvido conflito

2.5 Removendo ramos

# git branch -d novo_ramo outro_ramo
Deleted branch novo_ramo (was 123abc4).
Deleted branch outro_ramo (was 987fed6).
# git branch
* master

II. Uso do Gitee

1. Criando um repositório vazio no Gitee

Após criar o repositório vazio, você pode usar HTTPS ou SSH para interagir com ele.

2. Configurando conexão entre máquina local e o Gitee

2.1 Usando protocolo HTTPS

# git remote add origin https://gitee.com/seu_usuario/nome_repositorio.git
# git push -u origin master

2.2 Configuração SSH para acesso sem senha

# ssh-keygen -t rsa -C "seu_email@example.com"
# cat ~/.ssh/id_rsa.pub

Copie a chave pública e adicione-a à sua conta no Gitee.

# git remote set-url origin git@gitee.com:seu_usuario/nome_repositorio.git

2.3 Testando a integração

# echo 'Mensagem de teste' > teste.txt
# git add .
# git commit -m 'Teste de envio'
[master 1234567] Teste de envio
# git tag -a 'v1.0' -m 'Versão inicial'
# git push origin master

Tags: Git branch Merge Gitee SSH

Publicado em 10-9 08:51