Git Add ha un'opzione dettagliata


104

Sto trasferendo tutti i miei repository privati ​​e pubblici su GitHub. Una delle decisioni che ho preso è quella di utilizzare solo la console in quanto significa un minore ingombro degli strumenti se dovessi mai cambiare PC, ecc.

Sarei un grande utente di applicazioni console ed essendo nuovo su git ho deciso di acquistare la serie Mastering Git di Tekpub poiché mostra come integrare git bash come barra degli strumenti.

Tutto funziona bene tranne il comando aggiungi tutto che è:

git add .

Sembra funzionare ma non ho alcuna indicazione che funzioni o meno. Esiste un interruttore dettagliato (penso che sia così che sarebbe chiamato) che direbbe quali file sono stati tracciati dopo l'avvio del comando?

Sto utilizzando Visual Studio 2010 con l'installazione standard di git (non estensioni Git)


(Sì, è una vecchia domanda; l'ho vista perché è stata appena modificata.) git add --helpMostra la documentazione per il git addcomando, inclusa l' --verboseopzione.
Keith Thompson

Un nuovo pensiero per una vecchia questione - preferisco git add -Asopra git add .non ho guardato le differenze, ma hanno scoperto che il mio comando preferito è più probabile che aggiungere file ALL modificati o nuovi.
cptully

Risposte:


134

Per alcuni comandi git puoi specificare --verbose,

git 'command' --verbose

o

git 'command' -v.

Assicurati che lo switch sia dopo il comando git effettivo. Altrimenti, non funzionerà!

Utile anche:

git 'command' --dry-run 

5
git 1.7.9 (cygwin) mi dice che --verbose è un'opzione sconosciuta
Roy Truelove

5
@RTruelove: potresti usare al git --verbose addposto digit add --verbose
Bogdan D

30

Stavo eseguendo il debug di un problema con git e avevo bisogno di un output molto dettagliato per capire cosa stava andando storto. Ho finito per impostare la GIT_TRACEvariabile d'ambiente:

export GIT_TRACE=1
git add *.txt

Produzione:

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

1
Bingo! Grazie mille per questa variabile d'ambiente!
Henry Rivera

3
Per rendere le cose più facili, puoi dire: GIT_TRACE=1 git add *.txttutto sulla stessa linea.
cristianoms

6

Bene, come (quasi) tutti i programmi di console per sistemi simili a unix, git non ti dice nulla se un comando ha successo. Stampa qualcosa solo se c'è qualcosa che non va.

Tuttavia, se vuoi essere sicuro di quello che è appena successo, digita semplicemente

git status

e vedere quali modifiche verranno applicate e quali no. Ti suggerisco di usarlo prima di ogni commit, giusto per essere sicuro di non dimenticare nulla.

Dato che sembri nuovo su git, ecco un link a un libro online gratuito che ti introduce a git. È molto utile, scrive di basi e di diversi flussi di lavoro ben noti: http://git-scm.com/book


Dall'altra risposta vedo che c'è un modo per farti dire cosa sta succedendo, ma ti suggerisco di abituarti senza il parametro -v, il comportamento predefinito è più pratico (ed è più veloce da digitare).
Riccardo T.

//, non l'avevo mai sentito prima, che i programmi di console per sistemi tipo UNIX non ti dicono nulla se un comando ha successo. Ora che l'ho sentito, suppongo che avrebbe dovuto essere ovvio per me.
Nathan Basanese

Semplicemente non è vero! Git mi dice molto se lo uso regolarmente, anche se i comandi hanno successo. Ad esempio, git commitmi dice quante righe e file sono cambiati, se sono stati creati nuovi file, o git pushmi informa sullo stato di avanzamento del push a upstream.
LukeLR

5

Puoi usarlo git add -iper ottenere una versione interattiva di git add, anche se non è esattamente quello che stai cercando. La cosa più semplice da fare è, dopo aver fatto l' git added, git statusvedere cosa è messo in scena o no.

L'uso git add .non è davvero consigliato a meno che non sia il tuo primo commit. Di solito è meglio elencare esplicitamente i file che vuoi mettere in scena, in modo da non iniziare a tenere traccia dei file indesiderati accidentalmente (file temporanei e simili).


1
Basta usare .gitconfig per definire le eccezioni, non è necessario tenere traccia manualmente.
Steve K
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.