2017-03-03 2 views
2

J'ai une branche appelée ChartFeature mais je accidentellement tapé git checkout CHartFeature et a fini avec cela dans Powershell/poshgit:branche git inconnu vérifié

C:\git\Charting [CHartFeature]> git status 
On branch CHartFeature 
nothing to commit, working tree clean 

Qu'est-il arrivé ici? Si je regarde dans SourceTree il ne montre pas la branche, mais je peux (et ai eu moi-même des ennuis) quand j'ai commis des dossiers à cette branche que je n'ai jamais créée. (Je ne tapais git checkout -b CHartFeature mais je ne dois fusionner en ChartFeature.)

Si je liste les branches locales cette branche erronée n'existe pas:

C:\git\Charting [CHartFeature]> git branch 
    ChartFeature 
    develop 
    master 

Que fait git quand je tape git checkout CHartFeature sans avoir créé cette branche? Qu'est-il arrivé aux commits que j'ai faits là-bas?

De plus, est-il sûr de taper git branch -d CHartFeature? Que se passerait-il si je le faisais?

+0

utilisez-vous les fenêtres? – LeGEC

+0

Cela ressemble à quelqu'un d'autre créé cette branche il y a quelque temps et l'a poussé accidentiellement. – ckruczek

+0

Si vous êtes sur Windows, où les noms de fichiers ne sont pas (normalement) sensibles à la casse, vous pouvez extraire n'importe quelle combinaison de cas de la branche, mais vous êtes toujours sur la branche correctement nommée. Je viens de vérifier 'MAster', j'ai effectué une modification et vérifié le journal, ça a l'air OK, puis j'ai vérifié' master', vérifié le journal et mon commit est présent. Je suppose que 'git checkout X' vérifie juste s'il y a un fichier qui peut être ouvert sous le dossier refs avec ce nom, et sur Windows il y a, même si le vrai nom de fichier est' x'. –

Répondre

0

Ce problème est dû à la sensibilité à la casse dans Windows. Essayez de renommer manuellement ./.git/refs/heads/CHartFeature en ChartFeature manuellement. Ou tout CHartFeature présenté dans le dossier .git.

+0

La méthode recommandée pour renommer une branche consiste à utiliser 'git branch -m', et non pas en corrigeant manuellement les éléments dans le dossier' .git'. –

+1

@ LasseV.Karlsen en théorie 'git branche -m' ne devrait pas fonctionner, car une branche avec un nom différent n'a jamais été créée. L'OP utilisait 'git checkout' sans l'option' -b'. –

+0

Le renommage manuel est un peu compliqué car vous devriez également renommer le fichier * reflog * ('.git/logs/refs/heads/CHartFeature'). @kopranb: le '-b' est automatiquement supposé s'il y en a un (et un seul) correspondant à la branche de suivi à distance 'origin/*'. Dans ce cas, il y avait. – torek

0

Vérifiez quelles branches existent sur votre repo:

git branch 
git branch -r # view remote branches 

Si CHartFeature existe, mais ChartFeature n'a pas, essayez de renommer votre succursale:

git branch -m ChartFeature 
+0

@MattW: parmi les branches suivantes: ChartFeature, CHartfeature, origin/ChartFeature, origin/CHartFeature, lesquels voyez-vous? – LeGEC

+0

Voir les commentaires sur OP –