Você está na página 1de 11

Git Bash

Programa que vem no pacote do Git, com ele é possível usar grande parte dos
comandos em Shell, além de poder utilizar o Vim (que vem nativamente junto com
ele), realizar as conexões ssh, executar transferências de ficheiros scp, e o mais
importante, utilizar o Git por linha de comando no Windows.

Comandos Git

Configuração e Inicialização
Verifique a versão do Git com o seguinte comando, que irá também confirmar que o git está
instalado.

git –version

Para inicializar o diretório de trabalho atual como um repositório Git com o init.

git init

Para copiar um repositório Git existente hospedado remotamente, utilizará git clone com o
URL do repositório ou a localização do servidor (no último caso irá usar ssh).

git clone https://username @bitbucket.org/username/nome-do-repositório

Mostrar o repositório remoto do seu diretório Git atual.

git remote

Para um resultado mais detalhado, use a flag -v.

git remote -v

LAPR1 – GIT Linha de Comandos 1


Adicionar o Git upstream, que pode ser uma URL ou pode estar hospedado num servidor (no
último caso, conecte com ssh).

git remote add upstream https://username @bitbucket.org/username/nome-do-repositório

Staging
Quando modificou um ficheiro e marcou para ir no próximo commit, é considerado um ficheiro
preparado ou staged.

Verifique o status do seu repositório Git, incluindo ficheiros adicionados que não estão como
staged, e ficheiros que estão como staged.

git status

Para colocar como staged os ficheiros alterados, use o comando add, que pode executar
diversas vezes antes de fazer um commit. Se fizer alterações subsequentes que queira ver
incluídas no próximo commit, deve executar add novamente.

Pode especificar o ficheiro exato com o add.

git add meu_script.php

Com o . pode adicionar todos os ficheiros no diretório atual incluindo ficheiros que começam
com um .

git add .

Pode remover um ficheiro da área de staging enquanto mantém as alterações no seu diretório
de trabalho com reset.

git reset meu_script.php

LAPR1 – GIT Linha de Comandos 2


Commit
Depois de colocado no stage as suas atualizações, está pronto para fazer o commit delas, que
irá gravar as alterações que fez no repositório.

Para fazer commit dos ficheiros em stage, teráde executar o comando commit com sua
mensagem de confirmação significativa para que possa rastrear os commits.

git commit -m "Mensagem de commit"

Pode condensar o staging de todos os ficheiros rastreados fazendo o commit deles em uma
única etapa.

git commit -am "Mensagem de commit"

Para alterar a sua mensagem de commit, pode fazer isto com a flag --amend.

git commit --amend -m "Nova Mensagem de commit"

LAPR1 – GIT Linha de Comandos 3


Branches ou Ramificações
Uma branch ou ramificação é um ponteiro móvel para um dos commits no repositório. Permite
isolar o trabalho e gerir o desenvolvimento de recursos e integrações.

Listar todas as branches atuais com o comando branch. Um asterisco (*) irá aparecer ao lado
da sua branch ativa.

git branch

Criar uma nova branch.

git branch nova-branch

Mudar para uma branch existente e fazer checkout no seu diretório de trabalho atual.

• git checkout outra-branch

Pode consolidar a criação e o checkout de uma nova branch usar a flag -b.

• git checkout -b nova-branch

Renomear a sua branch.

• git branch -m nome-da-branch-atual novo-nome-da-branch

Mesclar o histórico da branch especificada àquela em que está a trabalhar atualmente.

• git merge nome-da-branch

Cancelar a mesclagem, no caso de existirem conflitos.

• git merge --abort

LAPR1 – GIT Linha de Comandos 4


Pode selecionar um commit específico para mesclar com cherry-pick e com a string que
referencia o commit específico.

• git cherry-pick f7649d0

Quando tiver mesclado uma branch e não precisar mais dela, poderá excluí-la.

• git branch -d nome-da-branch

Se não tiver mesclado uma branch com o master, mas tiver certeza de que deseja eliminá-la,
poderá forçar a exclusão da branch.

• git branch -D nome-da-branch

LAPR1 – GIT Linha de Comandos 5


Colaborar e Atualizar
Para descarregar alterações de outro repositório, tal como o upstream remoto, irá usar
o fetch.

git fetch upstream

Mesclar os commits baixados.

git merge upstream/master

Envie ou transmita seus commits na branch local para a branch do repositório remoto.

git push origin master

Descarregar e mesclar quaisquer commits da branch remota de rastreamento.

git pull

LAPR1 – GIT Linha de Comandos 6


Inspecionar
Mostrar o histórico de commits para a branch ativa atualmente.

• git log

Mostrar os commits que alteraram um ficheiro particular. Isso segue o ficheiro,


independentemente da renomeação do mesmo.

• git log --follow meu_script.py

Mostrar os commits que estão numa branch e não noutra. Isto irá mostrar os commits em a-
branch que não estão em b-branch.

• git log a-branch..b-branch

Observe os logs de referência (reflog) para ver quando as dicas de branches e outras
referências foram atualizadas pela última vez dentro do repositório.

• git reflog

Mostrar qualquer objeto no Git através da sua string de commit ou hash em um formato mais
legível.

• git show de754f5

LAPR1 – GIT Linha de Comandos 7


Mostrar Alterações
O comando git diff mostra as alterações entre commits, branches, entre outras.

Comparar ficheiros alterados que estão na área de staging.

• git diff --staged

Exibe o diff do que está em a-branch mas não está em b-branch.

• git diff a-branch..b-branch

Mostrar o diff entre dois commits específicos.

• git diff 61ce3e6..e221d9c

LAPR1 – GIT Linha de Comandos 8


Stashing
Fez alterações no código, mas, antes de terminar, precisa começar a trabalhar em
outra coisa. Ainda não está pronto para fazer o commit das alterações que fez até
agora, mas não quer perder seu trabalho. O comando git stash lhe permite salvar as
alterações locais e reverter para o diretório de trabalho com o commit mais recente
do HEAD.

Guarde (stash) seu trabalho atual.

• git stash

Ver o que tem guardado atualmente.

• git stash list

Os rascunhos serão nomeados stash@{0}, stash@{1}, e assim por diante. Mostrar


informações sobre um rascunho em particular.

• git stash show stash@{0}

Para trazer os ficheiros de um rascunho atual enquanto mantém o rascunho guardado,


utilize apply.

• git stash apply stash@{0}

Se quise trazer os ficheiros de um rascunho e não precisa do rascunho, utilize pop.

• git stash pop stash@{0}

Se não precisar mais dos ficheiros salvos em um determinado rascunho ou stash, pode
descartar o rascunho com drop.

• git stash drop stash@{0}

LAPR1 – GIT Linha de Comandos 9


Se tiver muitos rascunhos salvos e não precisar mais de nenhum deles, pode
utilizar clear para removê-los.

• git stash clear

Ignorar Ficheiros
Se quiser manter ficheiros no seu diretório local do Git, mas não quer fazer o commit
no projeto, pode adicionar esses ficheiros ao seu ficheiro .gitignore para que não
causem conflitos. Use um editor de textos como o nano para adicionar ficheiros ao
ficheiro .gitignore.

• nano .gitignore

Rebasing
Um rebase permite mover as branches alterando o commit no qual elas são baseadas.
Com o rebasing, pode reescrever ou reformular os commits.

Pode iniciar um rebase referindo o número de commits que fez e que quer fazer
rebase (5 no caso abaixo).

• git rebase -i HEAD~5

Como alternativa, pode fazer o rebase com base em uma determinada string de
commit ou hash.

• git rebase -i 074a4e5

Depois de ter reescrito ou reformulado os commits, pode concluir o rebase da sua


branch em cima da versão mais recente do código upstream do projeto.

• git rebase upstream/master

LAPR1 – GIT Linha de Comandos 10


Reset
Às vezes, inclusive após um rebase, é preciso redefinir a árvore de trabalho. Pode
redefinir ou resetar para um commit específico e eliminar todas as alterações com o
seguinte comando.

• git reset --hard 1fc6665

Para forçar a enviar seu último commit conhecido e sem conflitos para o repositório de
origem, use o --force.

Atenção: Forçar o envio ou pushing para o master não é recomendado a menos que haja
uma razão realmente importante para fazê-lo. Evite fazer isso quando estiver a colaborar.

• git push --force origin master

Para remover ficheiros e subdiretórios locais não rastreados do diretório Git para uma
branch de trabalho limpa, usar git clean.

• git clean -f -d

Se precisar alterar o repositório local para que ele pareça com o upstream master atual
(isto é, quando há muitos conflitos), pode executar um hard reset.

Nota: Executar este comando fará com que o repositório local fique exatamente igual ao
upstream. Todos os commits que fez, mas que não foram enviados para o upstream, serão
destruídos.

• git reset --hard upstream/master

LAPR1 – GIT Linha de Comandos 11

Você também pode gostar