2010-06-27 11 views
8

Ogni pezzo di documentazione che ho letto su Git (tra cui il libro online e l'aiuto built-in) dice che posso digitare "git diff" da linea di comando, ma ogni volta che faccio che ottengo:Perché git diff non funziona sulla riga di comando per me?

usage: git diff [--no-index] <path> <path>

Ecco quello che ho provato finora (sono tutti esempi della documentazione):

$ git diff 
usage: git diff [--no-index] <path> <path> 

$ git diff HEAD 
usage: git diff [--no-index] <path> <path> 

$ git diff -- 
usage: git diff [--no-index] <path> <path> 

$ git diff -- . 
usage: git diff [--no-index] <path> <path> 

$ git diff --stat 
usage: git diff [--no-index] <path> <path> 

$ git --version 
git version 1.7.1 

mi manca qualcosa qui?

+0

Oops ... Stackoverflow ha rimosso tutto tra parentesi angolari e rimosso il linefeed dopo ogni riga che termina con un "tag". Il testo di "utilizzo" dovrebbe essere sulla riga successiva. Il messaggio di errore effettivo con parentesi invece di parentesi angolari: "utilizzo: git diff [--no-index] (percorso) (percorso)" – Karl

risposta

9

Si sta effettivamente all'interno di una directory con un repository Git quando si eseguono questi? (git rev-parse --git-dir) Il comando deve essere in grado di trovare il repository e determinare quale sia il proprio albero di lavoro per produrre un risultato utile. Altrimenti (se un repository non può essere identificato), è impostato come un normale comando ricorsivo-diff e ha bisogno di due percorsi per funzionare.

+0

Sì, era così. La documentazione non fa menzione di questa "caratteristica" di git diff. Come sapete voi ragazzi di questa modalità operativa? – Karl

+0

@Karl: dalla [* git diff * manpage] (http://www.kernel.org/pub/software/scm/git/docs/git-diff.html): "Se vengono specificati esattamente due percorsi, e almeno uno non è tracciato, confronta i due file/directory. Questo comportamento può essere forzato da --no-index. " –

1

Utilizzare git diff --no-index. Il [] significa che l'argomento è facoltativo.

1

Stai lavorando in un repository git? Se fai uno stato git, ottieni qualcosa di simile al seguente?

> $ git status 
> # On branch develop.new_feature 
> # Changed but not updated: 
> # (use "git add <file>..." to update what will be committed) 
> # 
> # modified: feature 
> # modified: www/jkll.jsp 
> # 
> # Untracked files: 
> # (use "git add <file>..." to include   ... 
Problemi correlati