2015-10-15 26 views
5

Recentemente mi sono trasferito da SVN a git, e cercando di imparare il mio modo di aggirare git. Ho bisogno di trovare i file che sono cambiati tra 2 rami del mio repository. Io uso il seguente comando per che:git diff dà argomento ambiguo errore

git diff branch_2..branch_1 

ottengo l'errore follwing:

fatal: ambiguous argument 'branch_2..branch_1': unknown revision or path not in the working tree. 
Use '--' to separate paths from revisions, like this: 
'git <command> [<revision>...] -- [<file>...]' 

ramo git ha pronunciato la seguente O/P:

git branch -a 
* branch_1 
master/origin 
remotes/origin/HEAD -> origin/master 
remotes/origin/branch_2 
remotes/origin/branch_1 
+0

Questa potrebbe essere una domanda stupida, ma se si fa un ramo 'git -a' sono i tuoi rami in quella lista? – idjaw

+0

sì, lo sono. – am28

+0

Puoi incollare ciò che quei due rami sono elencati come nella tua lista? – idjaw

risposta

11

Se si sta semplicemente facendo:

git diff branch2..branch1 

Questo non lavoro, come elencato nella tua lista di git branch, i tuoi 'telecomandi' sono specificati come "origine". Ciò che questo significa in realtà è che hai quei rami sul tuo telecomando, ma in realtà non sono stati verificati localmente.

Quindi avete due opzioni qui. Prova questi e fammi sapere come va.

In base all'elenco fornito ramo:

Diff con origine/

git diff origin/branch2..branch1 

Se si vuole checkout questi rami a livello locale per eseguire la diff e magari lavorare su di essi sulla stazione di lavoro. Inoltre, sostenendo la diff in questo formato:

git diff branch2..branch1 

Quello che dovete fare è in realtà checkout quei rami per impostarle come sedi locali dal telecomando. Semplicemente fare questo:

git checkout branch2 

allora si può fare

git diff branch2..branch1 
+2

ha funzionato perfettamente !! – am28