2011-03-30 2 views
0

Par exemple:Git diff sans la branche de paiement

Dans le code source du noyau, il a beaucoup de balises. Je peux les diff, tels que:

git diff v2.6.37-RC3 v2.6.38-RC4

et je reçois la sortie droite.

Maintenant, je copie .git répertoire à un autre endroit, et dans ce nouveau répertoire .git, je peux également utiliser

git diff v2.6.37-rc3 v2.6.38-rc4 

pour obtenir la sortie droite.

Mais, j'ai une autre branche comme "mydev". Je ne peux pas commander à cette branche mydev, et faire le git diff v2.6.37-rc3 v2.6.38-rc4 commmand.

Comment puis-je le faire?

+3

Quand vous dites que vous ne pouvez pas vérifier la branche ou faire le 'git diff', quelles commandes essayez-vous et quelles erreurs obtenez-vous? –

Répondre

0

Vous devriez obtenir la même sortie qu'avant. Avoir une branche dans le référentiel ne devrait pas avoir d'importance.

1

Vous ne pouvez pas simplement copier le répertoire .git d'un référentiel GIT non nu et vous attendre à pouvoir extraire les branches. Lorsqu'il n'est pas vide, le référentiel a un index et a besoin d'un répertoire de travail correspondant. Notez que certaines commandes et arguments GIT (comme 'diff' avec deux commits) fonctionnent uniquement sur les objets/commits du référentiel et n'ont donc pas besoin d'un répertoire de travail - d'où ils fonctionnent, comme vous l'avez vu. Mais d'autres commandes (comme 'diff' entre commit et le répertoire de travail) ont besoin du répertoire de travail.