git ready

dicas diárias para o noob ao guru
por Nick Quaranto, traduzido pela comunidade RailsBr

adicionando interativamente

publicado em 14 Jan 2009

Algumas vezes simplesmente adicionar com git add. ou git commit -am não é o suficiente. Você pode querer dividir suas alterações ao longo de vários commits, ou você pode simplesmente ainda não estar pronto para adicionar tudo ainda. E quem quer adicionar os arquivos individualmente um de cada vez? Isto é simplesmente maçante. Para iniciar a adição interativa digite o seguinte:alterações

git add -i

Vamos a um exemplo de uso do modo interativo. Eu fiz alguns alterações no projeto gitready no readme e em alguns outros arquivos. Chamando o comando acima teremos essa saída, o status do índice:

         staged     unstaged path
1:    unchanged        +3/-1 README.md
2:    unchanged        +1/-1 _layouts/default.html

*** Commands ***
1: status   2: update  3: revert  4: add untracked
5: patch    6: diff    7: quit    8: help
What now> 

Como você pode ver, nós temos uma série de comandos disponíveis para nós. Se quiser visualizar esta tela novamente, utilize o comando status para lhe trazer de volta. O +3/-1 são os números de linhas que foram adicionadas/removidas, os usuais símbolos de mais e de menos que você vê quando faz um pull.

Vamos adicionar as alterações que fizemos no readme. A utilização do comando update irá nos permitir fazer isso. Após escolher este comando veremos a seguinte saída:

           staged   unstaged path
* 1:    unchanged      +3/-1 README.md
  2:    unchanged      +1/-1 _layouts/default.html
Update>>

E se nós selecionarmos o 1 para atualizar, iremos ser notificados de que o arquivo já foi preparado para ser comitado. Agora, se olharmos para o status, veremos que o nosso readme foi preparado corretamente.

          staged  unstaged  path
1:        +3/-1    nothing  README.md
2:    unchanged      +1/-1  _layouts/default.html

Feito isso, você pode encerrar utilizando o comando quit, e comitando seu trabalho. Se você não confiar nisso, chame o git status e será mostrado que somente o readme foi preparado para o commit:

# On branch master
# Changes to be committed:
#
# modified:   README.md
#
# Changed but not updated:
#
# modified:   _layouts/default.html

Há diversos outros comandos para adicionar interativamente, isto é apenas o começo. Verifique o comando help para ver tudo o que esta disponível para você. Iremos ter mais dicas no futuro para outros comandos interativos disponíveis.