O Git Add tem uma opção detalhada?

104

Estou no processo de transferir todos os meus repositórios públicos e privados para o github. Uma das decisões que tomei é usar apenas o console, pois isso significa uma pegada menor de ferramentas se eu precisar trocar de PC, etc.

Eu seria um grande usuário de aplicativos de console e, sendo novo no git, decidi comprar a série Mastering Git do Tekpub, pois mostra como integrar o git bash como uma barra de ferramentas.

Tudo está funcionando bem, exceto para o comando add all que é:

git add .

Parece estar funcionando, mas não tenho nenhuma indicação de que esteja funcionando ou não. Existe uma opção detalhada (acho que é assim que se chama) que diria quais arquivos foram rastreados após o comando ser iniciado?

Estou usando o Visual Studio 2010 com a instalação padrão do git (não extensões do Git)

deanvmc
fonte
(Sim, é uma pergunta antiga; vi porque acabou de ser editado.) git add --helpMostra a documentação do git addcomando, incluindo a --verboseopção.
Keith Thompson,
Um novo pensamento para uma velha questão - Eu prefiro git add -Amais git add .eu não olhei para cima as diferenças, mas descobri que o meu comando preferido é mais provável para adicionar todos os arquivos alterados ou novos.
totalmente

Respostas:

134

Para alguns comandos git que você pode especificar --verbose,

git 'command' --verbose

ou

git 'command' -v.

Certifique-se de que a opção esteja após o comando git real. Caso contrário - não funcionará!

Também útil:

git 'command' --dry-run 
Sahil Muthoo
fonte
5
git 1.7.9 (cygwin) me disse que --verbose é uma opção desconhecida
Roy Truelove
5
@RTruelove: você pode estar usando em git --verbose addvez degit add --verbose
Bogdan D
29

Eu estava depurando um problema com o git e precisava de uma saída muito detalhada para descobrir o que estava errado. Acabei definindo a GIT_TRACEvariável de ambiente:

export GIT_TRACE=1
git add *.txt

Resultado:

14:06:05.508517 git.c:415               trace: built-in: git add test.txt test2.txt
14:06:05.544890 git.c:415               trace: built-in: git config --get oh-my-zsh.hide-dirty
Aaron
fonte
1
Bingo! Muito obrigado por esta variável de ambiente!
Henry Rivera
3
Para tornar as coisas mais fáceis, você pode fazer assim: GIT_TRACE=1 git add *.txttodos na mesma linha.
cristianoms
6

Bem, como (quase) todo programa de console para sistemas do tipo unix, git não diz nada se um comando for bem-sucedido. Ele imprime algo apenas se houver algo errado.

No entanto, se você quiser ter certeza do que aconteceu, basta digitar

git status

e ver quais mudanças serão confirmadas e quais não. Eu sugiro que você use isso antes de cada commit, apenas para ter certeza de que não está se esquecendo de nada.

Já que você parece novo no git, aqui está um link para um livro online gratuito que apresenta o git. É muito útil, ele escreve sobre o básico, bem como diferentes fluxos de trabalho conhecidos: http://git-scm.com/book

Riccardo T.
fonte
Pela outra resposta, vejo que há uma maneira de fazer com que ele diga o que está acontecendo, mas sugiro que você se acostume sem o parâmetro -v, o comportamento padrão é mais prático (e é mais rápido digitar).
Riccardo T.
//, eu nunca tinha ouvido isso antes, que os programas de console para sistemas do tipo UNIX não informam nada se um comando for bem-sucedido. Agora que ouvi, acho que deveria ser óbvio para mim.
Nathan Basanese
Isso simplesmente não é verdade! Git me diz muito se eu usá-lo regularmente, mesmo se os comandos forem bem-sucedidos. Por exemplo, git commitme diz quantas linhas e arquivos foram alterados, se novos arquivos foram criados, ou git pushme informa sobre o andamento do envio para o upstream.
LukeLR
5

Você pode usar git add -ipara obter uma versão interativa do git add, embora não seja exatamente o que você está procurando. A coisa mais simples a fazer é, depois de ter git added, usar git statuspara ver o que está ou não encenado.

Usar git add .não é realmente recomendado, a menos que seja seu primeiro commit. Geralmente é melhor listar explicitamente os arquivos que você deseja preparar, para que você não comece a rastrear arquivos indesejados acidentalmente (arquivos temporários e outros).

Esteira
fonte
1
Basta usar .gitconfig para definir exceções, sem necessidade de rastrear manualmente.
Steve K