X-Git-Url: http://git.cascardo.info/?a=blobdiff_plain;f=Trabalhando_com_Git.mdwn;h=987b34d4a6552911051c81b3bb49dabdef9c0105;hb=ebcbcadd8fae74792141e2b647bb5cadb155729a;hp=c923ffccb3bdca7c521ece1b79839611abe09d07;hpb=0460660837c4d5ebb8047e431e728cf7af573457;p=cursogit.git diff --git a/Trabalhando_com_Git.mdwn b/Trabalhando_com_Git.mdwn index c923ffc..987b34d 100644 --- a/Trabalhando_com_Git.mdwn +++ b/Trabalhando_com_Git.mdwn @@ -67,3 +67,111 @@ deve ser utilizado. A opção -a do comando git commit adiciona as alterações e remoções ao índice para o commit, mas não adiciona novos arquivos, que devem ser adicionados com o comando git add. + +## Diferenças entre diretório de trabalho, índice e HEAD + +Para exibir a diferença entre o diretório de trabalho e o índice, pode +ser utilizado o comando git diff. + + ~/project$ git diff + diff --git a/INSTALL b/INSTALL + index e69de29..3924362 100644 + --- a/INSTALL + +++ b/INSTALL + @@ -0,0 +1 @@ + +# Instruções de instalação + ~/project$ + +Ao adicionar as alterações ao índice, git diff não mostrará nenhuma +diferença. + + ~/project$ git add INSTALL + ~/project$ git diff + ~/project$ + +Note que as alterações ainda não foram gravadas com um commit. Para +verificar as diferenças entre o índice e o último commit, também chamado +HEAD, use a opção --cached de git diff. + + ~/project$ git diff --cached + diff --git a/INSTALL b/INSTALL + index e69de29..3924362 100644 + --- a/INSTALL + +++ b/INSTALL + @@ -0,0 +1 @@ + +# Instruções de instalação + ~/project$ + +Algumas vezes, a intenção ao utilizar git diff é comparar o diretório de +trabalho com o último commit, independente das alterações presentes no +índice. Para tanto, deve ser especificado o parâmetro HEAD para o +comando git diff. + + ~/project$ git diff HEAD + diff --git a/INSTALL b/INSTALL + index e69de29..3924362 100644 + --- a/INSTALL + +++ b/INSTALL + @@ -0,0 +1 @@ + +# Instruções de instalação + ~/project$ + +## Ignorando arquivos + +Em muitas situações, arquivos são gerados a partir de outros, como no +caso de programas compilados ou minificados. Como boa prática, tais +arquivos não são mantidos em controle de versão, mas devem ser gerados +de forma automática e reprodutível. + +No entanto, tais arquivos, assim como outros arquivos temporários ou +gerados pelo sistema operacional podem aparecer constantemente na saída +de git status e outros comandos. Isso dificulta a leitura da saída +destes comandos e pode ser evitado com o uso de git ignore. + +Seja através do comando git ignore ou editando diretamente o arquivo +.gitignore, é possível instruir o git a ignorar arquivos que +correspondam a um padrão. O padrão *.html, por exemplo, faz com que +todos os arquivos com nome terminado em .html sejam ignorados. + +Veja o exemplo abaixo, em que arquivos compilados aparecem quando git +status é utilizado, e como ignorá-los usando o comando git ignore. O +comando escreve em um arquivo .gitignore, que também será considerado +pelo Git. É uma boa prática manter este arquivo sob controle de versão +e, portanto, ele é adicionado e um novo commit criado. + + ~/project$ git status + On branch master + Untracked files: + (use "git add ..." to include in what will be committed) + + hello + hello.o + + nothing added to commit but untracked files present (use "git add" to track) + ~/project$ git ignore '*.o' hello + Adding pattern(s) to: .gitignore + ... adding '*.o' + ... adding 'hello' + ~/project$ git status + On branch master + Untracked files: + (use "git add ..." to include in what will be committed) + + .gitignore + + nothing added to commit but untracked files present (use "git add" to track) + ~/project$ git add .gitignore + ~/project$ git status + On branch master + Changes to be committed: + (use "git reset HEAD ..." to unstage) + + new file: .gitignore + ~/project$ git commit -m "Acrescenta lista de arquivos a serem ignorados." + [master 8ba73db] Acrescenta lista de arquivos a serem ignorados. + 1 file changed, 2 insertions(+) + create mode 100644 .gitignore + ~/project$ git status + On branch master + nothing to commit, working directory clean + ~/project$