diff --git a/pt-br/git-pt.html.markdown b/pt-br/git-pt.html.markdown
index 0507d03c..3654822e 100644
--- a/pt-br/git-pt.html.markdown
+++ b/pt-br/git-pt.html.markdown
@@ -100,6 +100,15 @@ uma *HEAD* activa.
*head* é uma referência que aponta para qualquer *commit*. Um repositório pode
ter um número indefinido de *heads*
+### Estados no Git
+
+* Modificado (Modified): Ocorreram mudanças em arquivo mas essas mudanças
+ainda não foram registradas na base de dados do Git
+* Preparado (Staged): Marca o arquivo como preparado para ser adicionado ao
+próximo commit.
+* Consolidado (Committed): As mudanças foram registradas na base de dados do
+Git.
+
### Recursos conceituais (EN)
* [Git para Cientistas de Computação](http://eagain.net/articles/git-for-computer-scientists/)
@@ -148,6 +157,22 @@ $ git help -a
$ git help add
$ git help commit
$ git help init
+# ou git --help
+$ git add --help
+$ git commit --help
+$ git init --help
+```
+
+### Ignorando arquivos
+
+É possível intencionalmente ignorar arquivos e pastas. Costuma-se utilizar o
+arquivo .gitignore para fazer o git ignorar a existência de arquivos e pastas
+geralmente utilizados para arquivos privados ou temporários que, de outro modo,
+seriam compartilhados com todos que tem acesso ao repositório.
+
+```bash
+$ echo "temp/" >> .gitignore
+$ echo "chave_privada" >> .gitignore
```
### status
@@ -218,18 +243,22 @@ Gerencia as *tags*
```bash
# Listar tags
$ git tag
+
# Criar uma tag anotada.
# O parâmetro -m define uma mensagem, que é armazenada com a tag.
# Se você não especificar uma mensagem para uma tag anotada,
# o Git vai rodar seu editor de texto para você digitar alguma coisa.
$ git tag -a v2.0 -m 'minha versão 2.0'
+
# Mostrar informações sobre a tag
# O comando mostra a informação da pessoa que criou a tag,
# a data de quando o commit foi taggeado,
# e a mensagem antes de mostrar a informação do commit.
$ git show v2.0
+
# Enviar uma tag para o repositório remoto
$ git push origin v2.0
+
# Enviar várias tags para o repositório remoto
$ git push origin --tags
```
@@ -255,11 +284,17 @@ $ git checkout -b newBranch
Clona ou copia um repositório existente para um novo diretório. Também
adiciona *branches* de monitoramento remoto para cada *branch* no repositório
-clonado o que permite enviar alterações para um *branch* remoto.
+clonado o que permite enviar alterações para uma *branch* remoto.
```bash
# Clona learnxinyminutes-docs
$ git clone https://github.com/adambard/learnxinyminutes-docs.git
+
+# Clone superficial - É mais rápido, mas puxa apenas o último commit
+$ git clone --depth 1 https://github.com/adambard/learnxinyminutes-docs.git
+
+# Clona apenas uma branch em específica
+$ git clone -b master-cn https://github.com/adambard/learnxinyminutes-docs.git --single-branch
```
### commit
@@ -268,8 +303,20 @@ Guarda o conteudo atual do index num novo *commit*. Este *commit* contém
as alterações feitas e a mensagem criada pelo usuário.
```bash
-# commit com uma mensagem
+# Realize um commit com uma mensagem
$ git commit -m "Added multiplyNumbers() function to HelloWorld.c"
+
+# Assine um commit com sua chave GPG. Antes disso, você precisa ter
+# configurado a opção user.signkey do git com o comando:
+# git config --global user.signinkey ID_CHAVE_AQUI
+$ git commit -S -m "mensagem do commit aqui"
+
+# Automaticamente adicione como preparados arquivos modificados ou apagados e
+# então realize um commit:
+$ git commit -a -m "Modified foo.php and removed bar.php"
+
+# Altere o último commit (Esse comando reescreve o commit anterior)
+$ git commit --amend -m "Correct message"
```
### diff
@@ -321,11 +368,14 @@ Apresenta commits do repositório.
# Apresenta todos os commits
$ git log
-# Apresenta X commits
-$ git log -n 10
+# Apresenta apenas mensagem do commit e referência
+$ git log --oneline
# Apresenta apenas commits de merge
$ git log --merges
+
+# Apresenta todos os commits representados por um gráfico em ASCII
+$ git log --graph
```
### merge
@@ -367,6 +417,10 @@ Puxa alterações de um repositório e as junta com outra branch
# git pull => aplica a predefinição => git pull origin master
$ git pull origin master
+# Por padrão, o git irá realizar o pull na branch atual fazendo um merge
+# com as alterações novas na branch remota
+$ git pull
+
# Juntar alterações da branch remote e fazer rebase commits da branch
# no repositório local, como: "git pull , git rebase "
$ git pull origin master --rebase
@@ -383,6 +437,17 @@ num repositório remoto.
# git push
# git push => aplica a predefinição => git push origin master
$ git push origin master
+
+# Por padrão, o git push irá enviar e realizar merge das mudanças da sua branch
+# local com a branch remota
+$ git push
+
+# Para associar a branch local com uma branch específica remota, adicione a
+# flag -u
+$ git push -u origin master
+
+# Agora, sempre que você realizar um push daquela branch local, use o atalho:
+$ git push
```
### rebase (cautela!)