2009-09-10 4 views
1

Im commencer à apprendre à utiliser git, et je vais avoir une situation que je ne comprends pas (le dépôt a été mis hors svn)Git fusionner confusion. Diff montre les différences, et la fusion dit qu'il n'y en a pas

Im sur une branche [email protected] avec tout commis:

host$ git status 
# On branch [email protected] 
nothing to commit (working directory clean) 

Essayez de faire une fusion au maître:

host:$ git merge master 
Already up-to-date. 

Ce qui est source de confusion parce que la diff dit il y a des différences!

host$ git diff [email protected] 
warning: refname '[email protected]' is ambiguous. 
diff --git a/.classpath b/.classpath 
index 8ba1225..5af1151 100644 
--- a/.classpath 
+++ b/.classpath 
@@ -10,6 +10,11 @@ 
.... 

Que se passe-t-il?

Répondre

3

Il est possible qu'il n'y ait rien de nouveau à fusionner mais que votre branche a des changements qui ne sont pas en master. De telles différences seraient également reflétées dans engage donc une simple vérification que vous pouvez faire est de vérifier les journaux:

# See what's in my branch but not master 
git log [email protected] 

# See what's in master but not my branch 
git log [email protected] 

Je devine que vous verrez quelques commits là. Imaginez cette façon:

 
o---o---A---B---C  master 
     \  \ 
      ----D---E---F [email protected] 

Dans ce cas, il n'y a rien de nouveau à se fondre dans [email protected] mais les deux branches sont encore assez nettement différentes. Un bref aperçu de gitk --all serait probablement très utile ici.

1

Je pense que le problème est ici:

warning: refname '[email protected]' is ambiguous. 

essayer HEAD au lieu de jacob @ 379

Mais encore, sans doute dois obtenir un nom de la branche sans ambiguïté. Je pense que le @ a une signification particulière. Ou peut-être avez-vous un tag ou autre ref avec le même nom?

En outre, il est bon d'ouvrir un programme graphique qui vous montre toutes les balises et les branches et tout cela avec des lignes. Si vous l'avez, essayez: gitk --all

+0

Si vous ne disposez pas d'une visionneuse d'historique graphique, cela dans un pincement: git log --graph --decorate --all --pretty = court – JasonWoof

+2

Le caractère « @ » a une signification particulière que dans situations spécifiques, à savoir dans 'xxx @ {sth}'. Voir la page de manuel git-check-ref-format pour voir quels caractères et séquences de caractères sont interdits dans les noms de branches. –

Questions connexes