Ravakahn Gladior
Ravakahn Gladior Ravakahn foi um gladiador que, na Roma Antiga, lutava com outros gladiadores ou animais, às vezes, até a morte, para o entretenimento do público romano. há 4 anos

Comandos GIT diários

Comandos GIT diários

Fez um push acidentalmente para o branch errado? Sim, isso já aconteceu comigo também. E em vez de sempre procurar a solução pela web sempre que ela ocorre, comecei a anotar os comandos e fluxos de trabalho que uso para realizar tarefas comuns.

Este artigo mostra os comandos git para os cenários usuais que você encontra ao trabalhar com git, desde o básico de como clonar um repositório e criar um branch separado até lidar com problemas comuns, como commitar para o branch errado ou copiar um único arquivo de um branch diferente para o atual.

Sumário

Clonando o repositório

A primeira coisa que você precisa fazer ao trabalhar em um repositório git é clona-lo para o seu computador. Você precisa ir até o diretório no qual deseja fazer o clone e executar a instrução:

git clone <url>

Criando um branch

A menos que você esteja trabalhando sozinho em um projeto pessoal (e isso pode acontecer), não é uma boa idéia fazer alterações diretamente na master. De fato, muitos projetos com multiplos colaboradores não permitem que você faça isso. Portanto, sempre que você estiver trabalhando em uma nova funcionalidade, normalmente você irá criar um novo branch a partir do master. Assim que você concluir o seu trabalho, você poderá fazer o merge no master.

Se você estiver trabalhando em um projeto com muitas pessoas colaborando, tenha certeza de ter a última versão do master baixando as alterações enviadas no repositório com o comando:

git pull

Este comando pode reclamar que você não configurou um branch upstream para seu branch master local ao executa-lo pela primeira vez. Corrija isso com o comando:

git branch --set-upstream-to=origin/master master

(O Git provavelmente irá sugerir este comando para você quando você tentar executar git pull.)

Depois de baixar as alterações mais recentes, você pode criar um novo branch executando:

git checkout -b <branch_name>

Substitua <branch_name> pelo nome desejado para o seu branch.

Commit e push das suas alterações

Você fez suas alterações e agora precisa envia-las para o repositório git remoto. Você precisa criar um commit em seu repositório local e então enviar seus commits locais para o remoto.

Primeiramente, adicione todas as suas alterações ao seu commit local. Você pode fazer isso usando o comando git add. Na maioria das vezes, você deseja adicionar todas as suas alterações ao commit usando o *:

git add *

Mas você também pode adicionar arquivos individuais ou grupos de arquivos a lista de alterações, fornecendo um caminho específico para o add:

git add <path>

<path> é um caminho relativo dentro do seu repositório git. Por exemplo:

git add img/figura.png
git add docs

Você pode verificar quais arquivos foram alterados e quais deles foram adicionados executando:

git status

Se você incluiu algumas alterações por engano, pode reverter usando:

git restore <path>

Depois de adicionar os seus arquivos a lista de alterações, você pode fazer o commit executando o comando:

git commit -m "<Mensagem descrevendo seu commit>"

E depois de fazer os seus commits, você pode enviá-las para o repositório remoto executando:

git push

(Quando você executa o push pela primeira vez em um novo branch, o git pedirá que você configure um branch upstream para este branch no repositório remoto. Você pode simplesmente executar o comando que o git sugere no prompt para fazer isso.)

Mudando para outro branch

Se você quiser mudar para outro branch existente, você pode fazer isso executando:

git checkout <branch_name>

Merge do master branch em um branch local

Alguém fez alterações no branch master que você gostaria de usar em seu branch local? Você pode fazer isso mesclando todas as alterações do branch master em seu branch local.

Esteja ciente de que para o git mesclar (merge) as alterações no seu master local, você primeiro deve fazer o pull das alterações do master remoto para o seu local. Você irá precisar alternar para o master e executar o comando pull:

git checkout master

git pull

Depois, você pode voltar para o seu branch local e mesclar o master nele:

git checkout <branch_name>

git merge master

Merge outro branch no seu branch local

Você pode fazer o merge de qualquer outro branch da mesma forma que faz o merge do branch master, substituindo o nome master pelo nome de outro branch.

git fetch

Conflitos no merge

Quando você faz o merge de dois branches, pode acontecer que ambas alterem as mesmas linhas de código, mas de uma maneira diferente. Qual mudança deve ser mantida afinal? Infelizmente (ou felizmente) o git não é capaz de decidir qual a mudança é a correta, então isso criará um merge conflict (conflito no merge). Ao executar o merge, o git irá listar todos os arquivos nos quais um conflito ocorre. Você deve manualmente editar esses arquivos e em seguida fazer o commit dessas alterações usando os comandos git add e git commit - da mesma forma como faria em um commit comum.

Commit acidental em um branch errado

E se você acidentalmente fazer o commit em um branch errado? Você pode usar o comando reset:

git reset --soft HEAD ~ 1

Este comando irá desfazer o último commit, mas manterá todas as suas alterações. Assim, você pode simplesmente criar um novo branch ou alternar para um existente e então adicionar e enviar suas alterações lá.

E se acidentalmente você fez mais de um commit errado? Você pode executar o mesmo comando com qualquer número de commits:

git reset --soft HEAD ~ <numero_de_commits>

Apagando commits

Fez o commit de algumas alterações, mas elas não são mais desejadas? Você pode apagar elas executando o commando:

git reset --hard HEAD ~ <numero_de_commits>

Cuidado: isso removerá os commits e não manterá as suas alterações.

Copiar um arquivo específico para outro branch

Existem muitos motivos pelos quais você pode querer fazer isso. Talvez você tenha feito commits em vários arquivos, mas agora deseja apenas reverter as alterações de um deles. Ou talvez você não queira fazer o merge de um branch inteiro, mas precisa de mudanças feitas em um arquivo desse branch.

Você pode copiar o arquivo (ou um grupo de arquivos) usando o comando checkout. (Observe que você deve executar o comando no branch de destino para a qual deseja copiar as alterações.)

git checkout <branch_name> -- <path>

Onde <branch_name> é o nome do branch de origem da qual você deseja copiar as alterações e <path> é um caminho para o arquivo (ou arquivos) que você deseja copiar do branch.

Se você deseja restaurar arquivos (reverter suas alterações), você pode simplesmente fazer o checkout dos arquivos do branch master.

Conclusão

Espero que tudo isso seja útil para sua vida diária com git.