Principais comandos git que você vai usar no seu dia a dia

Neste artigo você irá conhecer alguns comandos básicos do Git.

git init

Acesse sua pasta do projeto que deseja fazer o versionamento e inicie com git init. Feito isso, você deu o start para que seu projeto seja controlado pelo Git. Em seguida adicione seus arquivos com git add ..

git add

Através do comando git add é possível adicionar os arquivos que você deseja que seja monitorado. Um exemplo seriagit add contato.php.

Neste exemplo apenas adicionamos um único arquivo, para adicionar todos arquivos da sua pasta é necessário adicionar o “ponto”, ficando então git add ..

Com git add -A você adiciona os arquivos que foram deletados do seu projeto.
Se você usar o git add *.php vai adicionar todos os arquivos com a extensão php.

git status

Com o git status você irá saber o que está acontecendo com seu projeto pois será mostrado em quais estados estão os arquivos.

git diff

Esse comando é parecido com o git status. Este comando compara o que está no seu diretório de trabalho com o que está na sua área de seleção (staging).

O resultado te mostra as mudanças que você fez que ainda não foram selecionadas. Em seguida aperte “q” para sair do terminal.

git commit

Ao commitar você escreve uma descrição sobre o que foi feito no seu código para que outros integrantes identifiquem essa mudança no histórico do projeto.Um exemplo seria git commit -m "Resolvido conflito do formulário da página de contato".

Esse comando é realizado após o git add pois seus arquivos devem ser adicionados ao índices para que recebam commits.

git add e git commit

É possível adicionar e comitar ao mesmo tempo usando o comando git commit -a -m "Mensagem do commit"

Estrutura de um commit

Um commit é representado por uma estrutura SHA1 com aproximadamente 40 caracteres que identifica unicamente o conteúdo existente desse commit.

git rm –cached nomedoarquivo.

Com este comando você retira do índice o arquivo que você não quer que o Git faça o tracking. É usado quando você utiliza git add e depois deseja que determinado arquivo saia do índice.

git log

Se você usar o git log no projeto, você irá visualizar uma lista de todos os seus commits enviados e commits de outros integrantes.

git log –stat

Com este comando você visualiza o log de cada commit e os arquivos modificados neles.

git branch

Para que você possa trabalhar isoladamente em um parte do seu projeto, é possível criar branchs que se originam da sua master. Isso se dá ao fato que você pode trabalhar em uma funcionalidade do seu projeto e depois mesclar esse branch a sua master.

Branch é uma ramificação do seu projeto. Para criar um novo branch use git branch nomedobranch.

Use git branch para saber em qual branch você está.

Removendo um branch

Use git branch -d nomedobranch para apagar um branch.

Visualize branchs remotos

Use git branch -a para ver os branchs remotos.

git checkout nomedobranch

Após ter criado seu branch a partir da master, acesse sua branch através do comando git checkout nomedobranch. Se você quiser acessar de imediato a branch que criou através da master use git checkout -b nomedabranch.

git pull

Com git pull você sincroniza tudo que está no repositório remoto. Use git pull origin master.

git push

Com git push você envia seus arquivos ou projeto para o repositório. Use git push origin master.

git stash

Vamos imaginar que você está trabalhando em um branch e precisa trabalhar em outro branch mas não deseja commitar.

Ao usar git stash o Git guarda as coisas para fora do diretório de trabalho. Mas primeiro é necessário executar git add . e em seguida git stash. Dê git status.

E para onde vão esses arquivos? Use git stash list para visualizar. E para trazer de volta use git stash apply e depois git stash clear.

Você ainda pode usar git stash save "fazendo comentários" para saber o nome que aquele stash pertence. Depois para visualizar use git stash list.

Vamos supor que você tenha uma lista de stashes, e deseja trazer de volta um stash específico. Então use git stash apply stash@{0} onde stash@{0} é a identificação do seu stash mostrado através do comando git stash list.

Com git stash pop você aplica todos os stashes que estão em sua lista.

E finalmente git stash drop stash@{0} apaga um stash.

O git stash é importante quando você precisa resolver um bug em outra área e não deseja comitar seu código atual.

Configurando o arquivo .gitignore

Para que você defina quais arquivos devem ser ignorados pelo Git, é necessário que você crie um arquivo chamado .gitignore na raiz do seu projeto. Sendo assim todos os caminhos ou arquivos que estiverem listados neste arquivo o Git não irá versionar.

Se um arquivo já está sendo monitorado pelo Git, e você adiciona o arquivo no .gitignore o GIT não vai parar de monitorar. Será necessário fazer git rm --cached nome_do_arquivo para manter o arquivo em sua árvore e então ignorá-lo.

Como adicionar um arquivo untracked em um commit anterior?

Vamos imaginar que você fez o commit mas esqueceu de adicionar determinado arquivo em um commit. E você não quer criar outro commit para isso, fazendo que seu arquivo entre no commit anterior. É possível usar o comando amend. Então use git add arquivo_esquecido.php e git commit -m "Meu commit" --amend, logo de git status e git log e você verá apenas 1 commit e não 2.

Feito isso o que ele fez foi refazer o commit anterior com essa nova alteração. Não faça git amend em repositórios remotos.

git log e vai ver que o SHA1 da identificação do commit mudou.

Como remover do índice um arquivo?

Vamos imaginar que você teve que usar git add . e apenas um arquivo da pasta não seria necessário adicionar ao índice. Então através do comando git reset HEAD arquivo_para_ser_removido.php será removido do índice e ficará como untracking.

Para que que esse arquivo não entre no commit, use git checkout arquivo_para_ser_removido.php.

Voltando commits

Através do comando git reset HEAD~1 --hard é possível desfazer o último commit e voltar para o commit anterior.

git reset HEAD~1 –soft

Com o comando --hard mostrado acima ele irá arrancar fora um commit inteiro. Com git reset HEAD~1 --softele retira o commit anterior e retorna o conteúdo deste commit para dentro do índice. É como se tivesse desfeito o commit e não as modificações.

Logo, para você trabalhar nesse commit você tem que trazer para o working area utilizando git reset HEAD. Pronto, seus arquivos deste commit estarão untracking.

Então --hard apaga os commits totalmente e --soft mantém as modificações do commit.
git log e verá o hash do commit.

Vamos supor que por engano você executou esse comando. Você pode pensar que essa operação foi destrutiva e que o trabalho do dia todo estava neste commit que se perdeu. Calma!

Com git reflog você visualiza o histórico de commits apagados que não estão mais acessíveis, pois a ideia é que você tenha cópias salvas em seu projeto. Com esse comando você visualiza o hash do commit com os 7 caracteres iniciais.

E com git merge e os 7 caracteres iniciais você resgata aquele commit apagado para sua branch atual. Exemplo: git merge 019cab3. Dessa forma você trás de volta aquele commit anterior que você apagou.

git add -i

No começo deste post foi mostrado o git add. Resolvi deixar por último o git add -i para que você entendesse todos os processos anteriores para entender este.

A letra i significa de interação.

Ao executar git add -i irá abrir em seu terminal uma opção de comandos para que você digite os números informando quais arquivos deverão ser adicionados.

git clean -f

Apaga arquivos do diretório de trabalho que não fazem parte do repositório. Lembrando que ele irá apagar os arquivos que estão untracking.

git rebase

Rebase é melhor que merge pois este rebobina e aplica deixando em ordem os commits. Rebase não é usado para comits que estão no servidor.

Qual a diferença de rebase e merge?

O git rebase é parecido com o merge. Ao invés de gerar um novo commit, ele reaplica cada um dos commits da branch local “por cima” do último commit da branch remota.

O rebase é usado quando desenvolvedores não querem sujar o histórico do repositório. Se você não usar git rebase, o Git sempre vai criar um novo commit para o merge dos commits locais com os commits remotos.

O git merge é mais recomendado pois não há risco de afetar o trabalho de outras pessoas e preserva a ordem real dos eventos no histórico, embora um pouco poluído.

gitk -all &

O gitk é um aplicativo gráfico que serve para visualizar os logs do repositório de uma maneira visual e mais fácil. (Se você estiver no Mac, use gitx)

Compartilhe

Sobre o autor

James R. Moro

James Moro

Iniciei minha vida profissional como desenvolvedor web em 2008. Tenho um canal no Youtube onde publico vídeos sobre tecnologia.

Faça um comentário