Git #2: Principais comandos do dia a dia

Tempo de leitura: menos de 1 minuto

Git

Continuando o post anterior (Git #1: Por onde começar), falaremos mais de como usar o Git, por a mão na massa de verdade.

Principais comandos

Comando: status

Talvez o comando mais utilizado no Git seja o “status”, com ele é possível saber quais foram as alteração desde a última vez que sua branch foi atualizada. Vejamos os exemplos:

Exemplo 1:

[code language=”bash”]
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
nothing to commit, working directory clean
[/code]

De acordo com a mensagem, nenhum arquivo na branch “master” foi alterado, sendo assim nada foi alterado até o momento.

Exemplo 2:

[code language=”bash”]
$ git status
On branch master
Your branch is up-to-date with ‘origin/master’.
Changes not staged for commit:
(use "git add …" to update what will be committed)
(use "git checkout — …" to discard changes in working directory)

modified: readme.txt

no changes added to commit (use "git add" and/or "git commit -a")
[/code]

Já nesse exemplo, o arquivo “readme.txt” foi modificado.

Nota: o Git sempre ajuda o usuário sugerindo o próximo comando, nesse caso a alteração ainda não está na Stage, portanto ele sugere a adição do arquivo ou o descarte da alteração.

Comando: diff

Como o comando diff é possível ter uma visão mais detalhada das alterações em um arquivo. Ele exibi o antes e depois da alteração em uma linha, ou bloco.

Exemplos:

[code language=”bash”]
$ git diff — readme.txt
[/code]

Nesse exemplo, será exibido as alterações no arquivo “readme.txt”, será listado algo como a imagem abaixo. As linhas com o sinal de “-” (em vermelho) indica como era; as linhas com o “+” (em verde) indica como está pós alteração.

git_log_diff

Nota: importante lembrar que o “– readme.txt” é opcional, o “–“,  serve para iniciar um arquivo específico, caso seja omitido, todos os arquivos alterados serão exibidos.

É possível também listar as diferenças de um, ou mais arquivos que foram adicionados à Stage, para isso:

[code language=”bash”]
$ git diff –staged
[/code]

Comando: add

Quando se cria um novo arquivo ou efetua modificações em um arquivo existente, para que se possa commitar as alterações é necessário adicionar as alteração à Stage, devemos falar ao Git que o arquivo está apito a ser commitado. Para isso usamos o comando “add”. Vejamos:

[code language=”bash”]
$ git add
[/code]

Nota: Quando existe mais de um arquivo a ser adicionado à Stage, basta usar o carácter “.” no lugar do nome .
Também é possível adicionar arquivos de um determinado package, para isso no lugar do <nome do arquivo>, digite a package seguida por “/*”. O “*” por ser usado também para extensões, exemplo: todos arquivo txt “*.txt”.

Comando: commit

Modificações adicionadas na Stage, agora é hora de fazer o commit, para isso usamos o comando “commit”. Abaixo segue algumas formas de commit:

Exemplo 1: commit de um único arquivo.

[code language=”bash”]
$ git commit
[/code]

Nota: O Git obriga que cada commit tenha seu comentário, no exemplo acima, o parâmetro “-m” foi omitido (-m é o parâmetro que informa o comentário), nesse caso, o Git abrirá o editor de texto configurado, para que o usuário posso escrever o comentário e efetivar o commit.

Exemplo 2: commit de todos os arquivos da Stage com comentário.

[code language=”bash”]
$ git commit -m "<comentário>"
[/code]

Exemplo 3: Commit pulando o Stage.

Esse comando dispensa a necessidade de usar o comando “add”.

[code language=”bash”]
$ git commit -a -m "<comentário>"
[/code]

Exemplo 4: Modificando seu último commit

Imagine a seguinte situação, “fiz o commit muito cedo e esqueci de adicionar um arquivo” ou “escrevi apenas parte do comentário, não faz sentido nenhum o que eu escrevi”. Para essas situações existe o parâmetro “–amend” que refaz o último commit adicionando novos arquivos e possibilitando alteração no commit.

[code language=”bash”]
$ git commit -m ‘initial commit’
$ git add forgotten_file
$ git commit –amend
[/code]

 Comando: rm e mv

Para remover um arquivo gerenciado pelo Git, usamos o comando “rm”:

[code language=”bash”]
$ git rm
[/code]

Para renomear um arquivo, usamos o comando “mv”:

[code language=”bash”]
$ git mv
[/code]

O comando “mv” é equivalente à fazer essa sequência:

[code language=”bash”]
$ mv README.txt README
$ git rm README.txt
$ git add README
[/code]

Desfazendo coisas

O Git possibilita que o usuário desfaça algumas coisas, como retirar um arquivo da Stage, retornar versão antes da alteração, entre outros.

Comando: reset

O comando reset pode retirar um arquivo que foi adicionado na Stage e retorna-lo para o diretório de trabalho, usamos isso quando, um ou mais arquivos que esteja na Stage, não deva ser commitado.

[code language=”bash”]
$ git reset HEAD
[/code]

Comando: checkout

O comando checkout serve, entre outras funcionalidades, para reverter a alteração feita em um arquivo.

Exemplo 1: Desfazendo um arquivo modificado

[code language=”bash”]
$ git checkout -f
[/code]

Exemplo 2: Desfazendo modificação de vários arquivos

[code language=”bash”]
$ git checkout — .
[/code]

Visualizando o Histórico de Commits

Vira e mexe, temos a necessidade de saber qual foi ou quem fez o último commit, no Git isso é possível usando o comando “log”:

[code language=”bash”]
$ git log
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <schacon@gee-mail.com>
Date: Mon Mar 17 21:52:11 2008 -0700
changed the verison number

commit a11bef06a3f659402fe7563abf99ad00de2209e6
Author: Scott Chacon <schacon@gee-mail.com>
Date: Sat Mar 15 10:31:28 2008 -0700
first commit
[/code]

O comando log disponibiliza vários parâmetros interessantes, abaixo listo alguns:

  • -p: que mostra o diff introduzido em cada commit;
  • -p seguido de -<numero>: limita a saída somente a o <número> de últimas entradas;
  • –stat: abaixo de cada commit uma lista de arquivos modificados, quantos arquivos foram modificados, e quantas linhas nestes arquivos foram adicionadas e removidas.
  • –pretty: muda a saída do log para outro formato que não o padrão
  • Para mais informações em consulte: http://git-scm.com/book/pt-br/Git-Essencial-Visualizando-o-Histórico-de-Commits.

É isso aí pessoal, ingenuamente, achei que dois posts seria o suficiente para dar um overview sobre o Git, me enganei. Para o post não ficar mais extenso do que já está, quebrei-o em duas partes, assim, logo devo postar a parte #3.

Espero que tenham gostado!

Referências

Livro: Pro Git

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *