3 ## Diretório de trabalho, índice, status
5 Ao trabalhar com Git, os arquivos estarão em um diretório de trabalho. O
6 Git é capaz de identificar os arquivos que estão sob seu controle, suas
7 mudanças, arquivos novos e removidos. Um dos comandos para obter essas
8 informações é git status.
10 Ao remover um arquivo, adicionar um segundo arquivo, e modificar um
11 terceiro, a saída de git status é a seguinte:
15 Changes not staged for commit:
16 (use "git add/rm <file>..." to update what will be committed)
17 (use "git checkout -- <file>..." to discard changes in working directory)
23 (use "git add <file>..." to include in what will be committed)
27 no changes added to commit (use "git add" and/or "git commit -a")
30 Note que há uma lista de alterações que não estão prontas para o commit,
31 e uma lista de arquivos não rastreados.
33 O comando git commit apenas grava as alterações que foram adicionadas
34 para o commit. No caso da remoção de um arquivo, o comando git rm deve
37 ~/project$ git rm INSTALL
41 Changes to be committed:
42 (use "git reset HEAD <file>..." to unstage)
47 Com a utilização de git rm, a remoção do arquivo não só é refletida no
48 diretório de trabalho, como também se reflete no índice, também chamado
49 de index. O índice é uma área em que são registradas as mudanças a serem
50 realizadas em um próximo commit. A distinção da área de trabalho e do
51 índice permite que modificações sejam postergadas, como novos arquivos
52 criados antes de estarem prontos para um commit.
54 Para adicionar alterações ou novos arquivos ao índice, o comando git add
57 ~/project$ git add AUTHORS
60 Changes to be committed:
61 (use "git reset HEAD <file>..." to unstage)
67 A opção -a do comando git commit adiciona as alterações e remoções ao
68 índice para o commit, mas não adiciona novos arquivos, que devem ser
69 adicionados com o comando git add.
71 ## Diferenças entre diretório de trabalho, índice e HEAD
73 Para exibir a diferença entre o diretório de trabalho e o índice, pode
74 ser utilizado o comando git diff.
77 diff --git a/INSTALL b/INSTALL
78 index e69de29..3924362 100644
82 +# Instruções de instalação
85 Ao adicionar as alterações ao índice, git diff não mostrará nenhuma
88 ~/project$ git add INSTALL
92 Note que as alterações ainda não foram gravadas com um commit. Para
93 verificar as diferenças entre o índice e o último commit, também chamado
94 HEAD, use a opção --cached de git diff.
96 ~/project$ git diff --cached
97 diff --git a/INSTALL b/INSTALL
98 index e69de29..3924362 100644
102 +# Instruções de instalação
105 Algumas vezes, a intenção ao utilizar git diff é comparar o diretório de
106 trabalho com o último commit, independente das alterações presentes no
107 índice. Para tanto, deve ser especificado o parâmetro HEAD para o
110 ~/project$ git diff HEAD
111 diff --git a/INSTALL b/INSTALL
112 index e69de29..3924362 100644
116 +# Instruções de instalação