Git: not checkout branch-error: pathspec '...' ne correspond à aucun fichier connu de git

Je ne suis pas sûr pourquoi je suis incapable de vérifier une branche que j'avais travaillé sur plus tôt. Voir les commandes ci-dessous (note: co est un alias pour checkout ):

ramon@ramon-desktop:~/source/unstilted$ git branch -a
* develop
  feature/datts_right
  feature/user_controlled_menu
  feature/user_controlled_site_layouts
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature/datts_right
  remotes/origin/master
ramon@ramon-desktop:~/source/unstilted$ git co feature/user_controlled_site_layouts 
error: pathspec 'feature/user_controlled_site_layouts' did not match any file(s) known to git.

Je ne sais pas ce que ça veut dire, Et je ne trouve rien que je puisse comprendre sur Google.

Comment puis-je vérifier cette succursale, et qu'est-ce que j'ai pu faire pour briser ceci?

mise à JOUR :

j'ai trouvé ce post et git show-ref me donne:

97e2cb33914e763ff92bbe38531d3fd02408da46 refs/heads/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/heads/feature/datts_right
11a90dae8897ceed318700b9af3019f4b4dceb1e refs/heads/feature/user_controlled_menu
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/heads/master
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/HEAD
e7c17eb40610505eea4e6687e4572191216ad4c6 refs/remotes/origin/develop
c438c439c66da3f2356d2449505c073549b221c1 refs/remotes/origin/feature/datts_right
c889b37a5ee690986935c9c74b71999e2cf3c6d7 refs/remotes/origin/master
23768aa5425cbf29d10ff24274adad42d90d15cc refs/stash
e572cf91e95da03f04a5e51820f58a7306ce01de refs/tags/menu_shows_published_only
429ebaa895d9d41d835a34da72676caa75902e3d refs/tags/slow_dev

mise à JOUR .git répertoire ( user_controlled_site_layouts est dans le refs/heads/feature folder ):

$ ls .git/refs/heads/feature/
datts_right  user_controlled_menu  user_controlled_site_layouts
$ cat .git/refs/heads/feature/user_controlled_site_layouts
3af84fcf1508c44013844dcd0998a14e61455034

mise à JOUR git show 3af84fcf1508c44013844dcd0998a14e61455034

$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <xxx@xxxxx.xxx>
Date:   Thu May 12 19:00:03 2011 +0800

    Removed site layouts migration

diff --git a/db/schema.rb b/db/schema.rb
index 1218fc8..2040b9f 100755
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended to check this file into your version control system.

-ActiveRecord::Schema.define(:version => 20110511012647) do
+ActiveRecord::Schema.define(:version => 20110503040056) do

   create_table "attachments", :force => true do |t|
     t.string   "name"
@@ -205,15 +205,6 @@ ActiveRecord::Schema.define(:version => 20110511012647) do
     t.integer  "old_id"
   end

-  create_table "site_layouts", :force => true do |t|
-    t.string   "name"
-    t.text     "description"
-    t.text     "content"
-    t.integer  "site_id"
-    t.datetime "created_at"
-    t.datetime "updated_at"
-  end
-
   create_table "site_styles", :force => true do |t|
     t.text     "published"
     t.datetime "created_at"
471
git
demandé sur Community 2011-05-13 13:03:48

30 réponses

essayez git fetch pour que votre dépôt local obtienne toutes les nouvelles informations de github. Il prend juste les informations sur les nouvelles branches et pas de code réel. Après cela le git checkout devrait fonctionner très bien.

654
répondu MarkoHiel 2012-08-29 17:47:50

je recevais l'erreur suivante quand j'ai essayé de vérifier la nouvelle branche

erreur: pathspec 'BRANCH-NAME' ne correspond à aucun fichier connu de git.

quand j'ai essayé git checkout origin/<BRANCH-NAME> il est allé à tête détachée

(non originaire/)

N'suivante pour résoudre le problème

git remote update
git fetch 
git checkout --track origin/<BRANCH-NAME>
222
répondu Mayank 2015-09-15 05:32:35

j'ai eu cette erreur pour une branche qui était distante et n'avait pas de branche locale de suivi. Même si je suis certain que j'ai vérifié les branches distantes via un simple

git checkout feature/foo

dans le passé, pour contourner cette erreur, j'ai dû

git checkout -t -b feature/foo origin/feature/foo

je n'ai aucune idée de ce que j'ai fait pour me mettre dans cette situation.

133
répondu Gregory McIntyre 2011-05-30 23:19:49

si vous supprimez une branche avec git branch -D yourbranchname et que vous retirez/clonez à nouveau votre déclaration, vous devrez peut-être créer à nouveau votre branche locale.

, Essayez:

git checkout -b yourbranchname
69
répondu Francisco Alvarez 2017-04-06 19:16:18

utilisateurs de Git Windows attention - sans le --icase-pathspecs ou GIT_ICASE_PATHSPECS = 1 paramètre env var , que git pathspecs sera sensible à la casse ,dans lequel cas

git checkout origin/FooBranch "Some/Path/To/File.txt"

n'est pas la même chose que

git checkout origin/FooBranch "some/path/to/file.Txt"
21
répondu StuartLC 2014-02-21 08:26:28

si le nom de la branche et vous n'avez pas de fichier non engagé, alors essayez ceci

git fetch && git checkout <branch name>
17
répondu Sajin M Aboobakkar 2017-05-18 10:22:00

j'ai les mêmes questions, et a obtenu quelques informations à partir de ce lien: git fetch n'est pas extraire toutes les branches

donc maintenant, je ne sais peut-être pas comment cette situation est arrivée, au moins nous pouvons la résoudre:

Étape 1. Vérifiez votre" télécommande.origine.fetch", devrait être comme ceci

$ git config --distant.origine.fetch

+ref/heads/private_dev_branch:ref/remotes/origin / private_dev_branch

Étape 2. Changement "à distance.origine.chercher à" extraire tout

$ git config à distance.origine.fetch" +refs/heads/*:refs/remotes/origin/* "

$ git config --distant.origine.fetch

+refs/heads/*:refs / remotes/origin / *

alors, vous peut essayer " git pull "(peut-être" git fetch origin " fonctionne aussi, mais je n'ai pas essayé) pour obtenir toute la branche.

13
répondu bearzyj 2017-08-08 04:48:25

j'ai eu ça quand j'ai fait ce qui suit:

  • utilisé Intellijide, connecté à git
  • a créé un nouveau fichier, et ajouté à git
  • renommé le nouveau fichier

Quand j'ai essayé de vérifier dans le répertoire, j'ai eu cette erreur.

pour fixer:

j'ai ouvert le repo dans Git extensions. J'ai vu que le fichier (avec l'ancien nom) a été mis en scène. Mais depuis qu'il n'existait plus, il ne pouvait pas être commis.

Je n'ai tout simplement pas déchiffré ce fichier.

puis j'ai ré-ajouté le fichier (cette fois correctement nommé) dans git et commis sans erreurs.

12
répondu Somaiah Kumbera 2014-11-26 15:50:08

j'ai eu ce problème aujourd'hui j'essayais de git checkout foo et j'ai eu error: pathspec 'foo' did not match any file(s) known to git.

Il s'avère que j'étais dans l'erreur repo . Donc leçon apprise: Vérifiez quel repo vous regardez avant de paniquer.

9
répondu James Harrington 2016-10-11 22:09:57

j'ai eu le même problème parce que j'ai utilisé git clone --depth=1 , ce qui implique --single-branch .

Faire une git clone permettra de le corriger.

7
répondu Huachao Huang 2016-08-25 11:01:31

sur Windows OS par défaut git est installé avec

core.ignorecase = true

cela signifie que les fichiers repo git seront insensibles à la casse, pour changer cela vous devez exécuter:

\yourLocalRepo> git config core.ignorecase false

vous pouvez trouver cette configuration sur .git config fichier

6
répondu Vasile Bors 2015-10-11 16:05:43
git pull

Que tout simplement, il fixe pour moi :)

6
répondu OpMt 2018-08-28 23:41:54

si cela se produit sur Windows, c'est probablement le problème du nom du fichier.

j'ai eu cette erreur aujourd'hui - j'ai créé un nouveau fichier, ajouté à GIT, puis j'ai changé une lettre dans le nom du fichier de bas en haut et puis je ne pouvais rien faire - commit, revert, supprimer le fichier de repo.

la seule solution que j'ai trouvé était de changer le nom du fichier à nouveau exactement le même cas quand j'ai ajouté ce fichier à GIT, puis faire git revert pour supprimer ce fichier de Git, puis changer le nom de fichier à nouveau comme je veux. Après ces changements, je pourrais m'engager à repo et puis pousser sans aucun problème.

5
répondu Marcin Nabiałek 2015-03-03 16:57:30

dans mon cas j'ai deux branches 1) maître(qui est pour le serveur en direct) 2) dev(serveur de test). J'avais paramétré plusieurs télécommandes pour push code sur le serveur respectif. Quand j'ai essayé de changer de branche j'ai eu l'erreur comme error: pathspec 'master' did not match any file(s) known to git.

vous pouvez les voir par git remote -v . J'avais enlevé une autre télécommande sauf origin par git remote remove <remote-name>

puis git fetch

maintenant je suis en mesure de caisse branche par git checkout <branch-name> .

5
répondu ProCylon 2016-12-23 08:36:04

tout d'abord, caisse de la branche mère.Puis tapez

git fetch --all --prune 
git checkout <your branch>

Espère que cela aide!.

5
répondu Shradhey Tripathi 2018-08-09 15:30:57

m'est arrivé après avoir renommé un fichier non engagé dans Android Studio.

Git semblait avoir l'ancienne version dans son référentiel, même si elle n'existe plus.

fetch, pull, checkout, add all and so on did not help in my case!

alors j'ai ouvert le git GUI de TortoiseGit qui m'a montré le fichier exact qui a causé des problèmes.

après j'ai supprimé le fichier du dépôt avec

git rm -r --cached /path/to/affected/file

et le problème a disparu

4
répondu Marian Klühspies 2018-05-11 19:44:45

j'ai eu le même problème.. Je pensais que j'avais branche appelé foo quand j'essaie de:

git checkout foo

je recevais:

error: pathspec 'foo' did not match any file(s) known to git.

puis j'ai essayé le nom complet de la branche:

git checkout feature/foo

travaillait alors pour moi.

3
répondu tokhi 2013-12-13 19:22:45

dans mon cas j'avais renommé un fichier en changeant le cas du fichier, i.e. SomeFile.js - > someFile.js

je pense que c'était lié au problème. Faire un git fetch n'a pas réglé le problème.

j'ai déplacé les fichiers hors de mon projet, j'ai fait un fetch, et j'ai fait un push sans eux. Puis j'ai fait un fetch, je les ai rajoutés, et j'ai poussé, et ça a marché. Je ne sais pas si toutes ces étapes étaient nécessaires, mais elles ont finalement fonctionné.

3
répondu Kip 2015-03-31 22:03:38

aucune de ces réponses n'a résolu mon problème:

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git log --format=oneline
b9cc6a9078312865280fb5432a43e17eff03a5c6 Formatted README
288772f36befe6bd60dd41b8185f1e24e0119668 Updated README documentation
d2bdbe18f4169358d46fad50eacfb89786df3bf8 Version object v3.0.0-SNAPSHOT
a46b1910a3f548b4fa254a6055d25f68d3f217dd VersionFactory is now Platform agnostic
24179ae569ec7bd28311389c0a7a85ea7b4f9594 Added internal.Platform abstraction
252b684417cf4edd71aed43a15da2c8a59c629a7 Added IPlugin implementation for Sponge
e3f8d21d6cf61ee4fc806791689c984c149b45e3 Added IPlugin implementation for Bukkit
aeb403914310b4b10dee9e980cf64472e2bfda79 Refactored Version.java
ef50efcff700c6438d57f70fac30846de2747a7e Refactored TesterFactory
a20808065878d4d28657ae362235c837cfa8e625 Added IPlugin abstraction
9712a3575a70060d7ecea8b62bb5e888fdc32d07 Heavily refactored Tester
02d025788ae740dbfe3ef76a132cea8ca4e47467 Added generic Predicate<T> interface
9c565777abea9be6767dfdab4ab94ed1173750dd Minor refactoring of testCompareTo()
2ff2a28c221681e256dcff28770782736d3a796a Version object v2.0.1
d4b2e2bd830f77cdbc2297112c2e46b6555d4393 Fix compareTo()
05fe7e012b07d1a5b8de29804f96d9a6b24229a1 Make compareTo() fail
6e85371414357a41c1fc0cec0e75adba92f96832 Fix VersionFactory passing null
c1fd1f032f87d860d5ed9d6f6679c9fa522cff8d Version object v2.0
62c3a92c008a2ed11f0a4d016080afc3541d0700 Version object v1.2
c42e9e617128085e872c51b4d977a04e48d69e8f Deprecated, doc'd, future-proofed getNm


Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git checkout 3a796a
error: pathspec '3a796a' did not match any file(s) known to git.

j'essayais de revenir en arrière et de construire le commit pour Version object v2.0.1 . Heureusement, j'ai eu l'idée d'essayer tout le code hash et ça a marché ! Ce qui veut dire que j'utilisais le mauvais bout du code de hachage.

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version (master)
$ git checkout 2ff2a
Note: checking out '2ff2a'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 2ff2a28... Version object v2.0.1

Nikolai@CALIGARI-7 ~/Documents/NetBeansProjects/Version ((2ff2a28...))
$

comme indiqué ci-dessus, pour les codes de hachage partiel, vous devez fournir l'extrémité avant, pas l'extrémité arrière.

3
répondu Nikolaii99 2015-08-05 22:42:49

dans mon cas, j'entre dans le répertoire submodule sans faire

  • git submodule init
  • git submodule update

ainsi git a été lié au dossier parent qui a effectivement manqué cette branche.

3
répondu Ilya Gazman 2015-08-26 11:55:34

j'ai rencontré ce même problème, lorsque j'ai commencé à jouer avec git. Lors de mon premier engagement...

git commit -m 'first commit!'

j'ai eu l'erreur mentionnée par L'OP...

error: pathspec 'commit!'' did not match any file(s) known to git.

j'ai pensé que j'aurais pu confondre git en utilisant un mot-clé dans le message de propagation, donc j'ai essayé quelques autres mots et j'ai reçu la même erreur.

finalement j'ai utilisé des guillemets dans le message...

git commit -m "first commit!"

cela s'est avéré être un succès...

[master (root commit) 0000000] first commit!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummyDoc.txt
2
répondu TheLastGIS 2016-12-28 00:23:11

j'ai fait une erreur stupide de ne pas fournir-m flag en commettant (lol arrive)

git commit -m "commit message in here"
2
répondu Ajain Vivek 2017-03-23 12:49:52

je recevais le même pathspec error sur git-bash. J'ai utilisé Tortue git sur les fenêtres pour commuter / vérifier la branche.

1
répondu nouveau 2013-04-17 08:31:15

cela peut être causé lorsque l'amont réécrit l'histoire.

lorsque cela se produit, je jette tous les repos affectés, les cloner frais de l'amont, et utiliser 'format git-patch' / 'GITAM' pour transborder tout travail en cours de l'ancien monde à nouveau.

1
répondu Dan Kegel 2014-03-13 23:25:19

j'ai fait face à une question similaire. Ce qui m'a attiré dans cette perturbation, c'est: J'avais plusieurs branches distantes et j'ai supprimé le dossier qui avait le code. J'ai fait un pull. :

git pull git@git.corp......

puis j'ai ajouté le dépôt à distance:

git remote add upstream git@git.corp.......

puis j'ai essayé de changer la branche à une autre branche dire AAAA et j'ai eu erreur

error: pathspec 'AAAA' did not match any file(s) known to git.

Après avoir passé une heure, j'ai trouvé une solution. J'ai encore effacé le dossier source. Puis j'ai fait une git pull:

git pull git@git.corp......

puis j'ai changé de branche avant de la relier au dépôt distant:

git checkout AAA

puis je l'ai ajouté au dépôt distant

git remote add upstream git@git.corp......

après cela je peux facilement changer de branches. Bien que ce ne soit pas un moyen standard, mais il a fonctionné pour moi après que j'ai essayé toutes les options ci-dessus.

1
répondu Amit Kumar 2015-04-07 10:23:21

j'ai eu ce problème en travaillant avec Git sur Windows. Dans mon cas, il s'agissait d'un problème. J'avais déjà ajouté et engagé un fichier dans mon dépôt et plus tard changé seulement son cas. Pour résoudre le problème, j'ai renommé le fichier pour correspondre au cas original et l'ai renommé à nouveau avec la commande git mv . Apparemment, cela permet à git de suivre le renommage.

Note: J'utilisais Cygwin.

1
répondu Thomas Eizinger 2015-09-16 14:32:28

j'ai fait face à ce problème la dernière fois, et la chose que j'ai fait est de supprimer le dossier (ou code source) lié à cette branche.

Ex: la branche origine / foo créer dossier foo à votre local, donc je l'efface et utilise git fetch $ checkout pour récupérer le code à distance.

ou vous pouvez le faire en créant le dossier à la même place que la branche que vous aviez l'intention de vérifier.

Ex: créer un dossier foo À local, après cela, utilisez la commande Git: git branch --set-upstream-to=origin/foo foo , c'est tout. Utilisez git pull pour obtenir le code.

1
répondu blackberry 2016-01-25 04:52:56

dans mon cas, je lance " git fetch "avant" git branch"...:, mais elle a obtenu le même message d'erreur. Puis je l'ai analysé et a trouvé une erreur dans mon nom de branche . Fixe et passer à la branche avec succès.

1
répondu Viktor Chmel 2016-07-19 09:23:43

une raison possible, si vous travaillez sur windows machine avec MINGW*

ISSUE

vérifiez le nom de la branche que vous voulez acheter.Windows omet le caractère ' du nom de la branche lors de l'analyse de la commande.

par exemple : si vous avez un nom de branche comme bugfix/some-'branch'-name

quand vous donnez l'ordre: > git checkout bugfix/some-'branch'-name il va Parser il est comme bugfix/some-branch-name , notez qu'il omet le caractère ' .

REMEDY

pour vérifier ce type de nom de branche, ajouter le caractère d'évasion lors de l'émission de la commande.

Type: > git checkout bugfix/some-\'branch\'-name

ça devrait marcher alors!!

1
répondu Piyush Sagar 2016-10-19 12:15:45

pour moi, c'était un problème avec mes références


après avoir essayé une partie de la réponse, l'un d'eux m'a aidé à résoudre le problème:

Running git fetch lançait l'erreur suivante:

ne pouvait pas résoudre host: bitbucket.org

Tout ce que j'avais à faire était de forcer mon IDE (VS Code dans mon cas) à se souvenir de mes références:

git config --global credential.helper wincred

git immédiatement synchronisé tous les changements, et git checkout <branche> fonctionne bien maintenant!

1
répondu Jeffrey Roosendaal 2018-08-30 19:08:19