Je ne sais pas pourquoi je ne peux pas commander une succursale sur laquelle j'avais travaillé 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 cela signifie, et je n'arrive pas à trouver quoi que ce soit que je puisse comprendre sur Google.
Comment puis-je extraire cette branche et qu'ai-je pu faire pour rompre cela?
MISE À JOUR :
J'ai trouvé ce post , et courir 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 sur le .git
répertoire (se user_controlled_site_layouts
trouve dans 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 le git show 3af84fcf1508c44013844dcd0998a14e61455034
$ git show 3af84fcf1508c44013844dcd0998a14e61455034
commit 3af84fcf1508c44013844dcd0998a14e61455034
Author: Ramon Tayag <[email protected]>
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"
git checkout refs/heads/user_controlled_site_layouts
:?git branch -a
mais pas dansgit show-ref
. Le fichier.git/refs/heads/feature/user_controlled_site_layout
existe-t-il réellement? Si oui, qu'est-ce que celacat .git/refs/heads/feature/user_controlled_site_layout
donne?Réponses:
Essayer
git fetch
pour que votre dépôt local obtienne toutes les nouvelles informations de github. Il prend simplement les informations sur les nouvelles branches et aucun code réel. Après cela, celagit checkout
devrait bien fonctionner.la source
git fetch
est utile lorsque vous devez synchroniser votre référentiel local avec le référentiel distant, mais que vous ne souhaitez pas fusionner les modifications dans votre dossier de travail.git checkout Branch
ne fonctionne pas. Avec plusieurs télécommandes, le nom de la branche est ambigu et nécessite la spécification de remote / branch. La commandegit checkout -b branch remote/branch
fonctionne dans ce scénario.git fetch
pourrait faire le travail. Mais il peut ne pas obtenir toutes les branches à distance. Vous devez définir le modèle de correspondance d'extraction.git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
voir: stackoverflow.com/questions/11623862/…J'obtenais cette erreur lorsque j'ai essayé de commander une nouvelle branche:
Quand j'ai essayé
git checkout origin/<BRANCH-NAME>
, j'ai obtenu la tête détachée:Enfin, j'ai fait ce qui suit pour résoudre le problème :
la source
git checkout --track origin/staging fatal: git checkout: --track and --no-track require -b
git version 1.5.6.5git checkout -b staging --track origin/staging
J'ai eu cette erreur pour une branche distante et sans branche de suivi locale. Même si je suis certain d'avoir vérifié les succursales distantes via un simple
dans le passé, pour contourner cette erreur, je devais
Je n'ai aucune idée de ce que j'ai fait pour me mettre dans cette situation non plus.
la source
fetch = +refs/heads/*:refs/remotes/origin/*
ligne pour qu'elle corresponde au nouveau nom de la télécommande. LOL. Peut-être que cela est arrivé à makandra? car après l'avoir réparé, vérifier une fois de plus la branche l'obtient depuis son origine, même si j'ai de nombreuses télécommandes.Si vous avez supprimé une branche avec
git branch -D yourbranchname
et tiré / cloné à nouveau votre référentiel, vous devrez peut-être recréer votre branche locale.Essayer:
la source
J'ai les mêmes questions et j'ai obtenu des informations à partir de ce lien: git fetch ne récupère pas toutes les branches
Alors maintenant, je ne sais pas comment cette situation s'est produite, au moins nous pouvons la résoudre:
Étape 1. Vérifiez votre paramètre "remote.origin.fetch", devrait être comme ceci
Étape 2. Modifiez "remote.origin.fetch" pour tout récupérer
Ensuite, vous pouvez essayer "git pull" (peut-être que "git fetch origin" fonctionne aussi mais je n'ai pas essayé) pour obtenir toute la branche.
la source
Les utilisateurs de Git Windows se méfient - sans le paramètre
--icase-pathspecs
ouGIT_ICASE_PATHSPECS = 1
env var, les paramètres de chemin git seront sensibles à la casse, auquel casn'est pas la même chose que
la source
--icase-pathspecs
paramètre doit venir en premier ou au moins avant-C <path>
Si le nom de la branche et que vous n'avez aucun fichier non engagé, essayez ceci
la source
J'ai rencontré le problème lors du changement de succursale.
J'ai fait un git pull sur la branche actuelle, puis j'ai essayé de vérifier la nouvelle et cela a fonctionné
git pull // on your old branch git checkout <new_branch>
la source
git pull
faire plus que tirer la branche actuelle?Cela m'a tout simplement arrangé :)
la source
J'ai eu le même problème car j'ai utilisé
git clone --depth=1
, ce qui implique--single-branch
.Faire un terminé
git clone
le réparera.la source
Je l'ai obtenu lorsque j'ai fait ce qui suit:
Lorsque j'ai essayé de vérifier dans le répertoire, j'ai eu cette erreur.
Pour corriger:
J'ai ouvert le dépôt dans les extensions git. J'ai vu que le fichier (avec l'ancien nom) était mis en scène. Mais comme elle n'existait plus, elle ne pouvait pas être engagée.
J'ai simplement décortiqué ce fichier.
Ensuite, j'ai rajouté le fichier (cette fois correctement nommé) dans git et commis sans erreur.
la source
J'ai eu ce problème aujourd'hui , je voulais
git checkout foo
et obtenuerror: pathspec 'foo' did not match any file(s) known to git.
Il s'avère que j'étais dans le mauvais dépôt . Donc, leçon apprise: vérifiez le repo que vous regardez avant de paniquer.
la source
J'ai eu cette erreur en essayant de commander une succursale via:
que je n'avais pas vérifié avant. Cela ne fonctionnait que lors de la déclaration explicite de la télécommande:
La raison en était que j'avais 2 télécommandes différentes (origine + sth. Else) configurées dans git config. Comme je n'avais pas besoin de la deuxième télécommande, je l'ai retirée et voila, cela a fonctionné. L'alternative pour définir la télécommande par défaut via:
N'a pas travaillé pour moi
la source
Commencez par extraire la branche parent.
J'espère que cela aide!.
la source
Je l'ai corrigé en modifiant mon fichier de configuration git Vérifiez votre fichier de configuration dans votre répertoire git -
.git\config
Il avait auparavant
J'ai corrigé en le modifiant en
Remarquez que la tête pointait vers une seule branche, donc elle ne pouvait pas trouver la référence aux autres branches existantes, je l'ai changée en * pour qu'elle vérifie tout à l'origine.
la source
Sur Windows OS par défaut, git est installé avec
Cela signifie que les fichiers git repo seront insensibles à la casse, pour changer cela, vous devez exécuter:
vous pouvez trouver cette configuration dans le fichier .git \ config
la source
J'ai copié l'origine distante
url
d'un autre.git/config
fichier, ce qui fait que mon nouveau.git/config
fichier manquait à la ligne suivante de la[remote "origin"]
sectionAjout au-dessus de la ligne fixe
error: pathspec 'master' did not match any file(s) known to git.
la source
J'ai eu le même problème .. Je pensais avoir nommé une branche
foo
lorsque j'essaye de:Je recevais:
Ensuite, j'ai essayé le nom complet de la branche:
puis a travaillé pour moi.
la source
Si cela se produit sous Windows, c'est probablement le problème de cas de nom de 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 de fichier de bas en haut et je n'ai rien pu faire - valider, revenir en arrière, supprimer le fichier du dépôt.
La seule solution que j'ai trouvée était de changer à nouveau le nom de fichier pour revenir exactement au même cas lorsque j'ai ajouté ce fichier à GIT, puis de faire GIT revert pour supprimer ce fichier de GIT, puis de changer à nouveau le nom de fichier comme je le souhaite. Après ces changements, je pouvais m'engager à repo puis pousser sans aucun problème.
la source
git mv
. Je suppose que vous l'avez fait de cette façon, parce que le faire via mon IDE (IntelliJ PhpStorm) a échoué pour moi ...Dans mon cas, j'ai DEUX branches 1) master (qui est pour le serveur live) 2) dev (serveur de test). J'avais configuré plusieurs télécommandes pour pousser le 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 retiré une autre télécommande sauf uneorigin
télécommande pargit remote remove <remote-name>
alors
git fetch
Maintenant, je suis en mesure de commander par branche
git checkout <branch-name>
.la source
J'ai rencontré ce même problème lorsque je jouais avec git pour la première fois. Lors de la tentative de mon premier commit ...
J'ai eu l'erreur mentionnée par l'OP ...
Je pensais que j'aurais pu confondre git en utilisant un mot-clé dans le message de validation, j'ai donc essayé quelques autres mots et j'ai reçu la même erreur.
Enfin, j'ai utilisé des guillemets doubles dans le message ...
Cela s'est avéré être un succès ...
la source
J'avais fait une erreur idiote de ne pas fournir d'indicateur -m lors de la validation (lol arrive)
la source
J'avais une cause racine différente
J'ai eu un script qui recherche essentiellement toutes les branches correspondant à la clé de problème jira dans le "PRJ-1234" parmi toutes les branches pour exécuter une commande de vérification de la branche git sur la branche correspondante
Le problème dans mon cas était que 2 branches ou plus partageaient la même clé jira et ont donc provoqué l'échec de mon script avec l'erreur susmentionnée
En supprimant l'ancienne branche inutilisée et en vous assurant qu'une seule branche avait la référence de clé jira résolu le problème
Voici mon code au cas où quelqu'un voudrait l'utiliser
enregistrer cela sous
switchbranch.sh
Ensuite, utilisez-le depuis le terminal
./switchbranch.sh PRJ-1234
la source
Aucune de ces réponses n'a résolu mon problème:
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 de hachage et cela a fonctionné! Ce qui signifie que j'utilisais la mauvaise extrémité du code de hachage.Comme indiqué ci-dessus, pour les codes de hachage partiels, vous devez fournir le front-end, pas le back-end.
la source
Cela m'est arrivé après avoir renommé un fichier non validé dans Android Studio.
Git semblait avoir l'ancienne version dans son dépôt, même si elle n'existait plus.
J'ai donc ouvert l'interface graphique Git de TortoiseGit qui m'a montré le fichier exact qui a causé des problèmes.
Ensuite, j'ai supprimé le fichier du référentiel avec
et le problème était parti
la source
Dans mon cas, j'avais renommé un fichier en changeant la casse du fichier, c'est-à-dire SomeFile.js -> someFile.js
Je pense que c'était lié au problème. Faire un git fetch n'a pas résolu le problème.
J'ai retiré les fichiers de mon projet, j'ai fait une recherche et j'ai poussé sans eux. Ensuite, je suis allé chercher, je les ai rajoutés et j'ai poussé, et cela a fonctionné. Je ne sais pas si toutes ces étapes étaient nécessaires, mais cela a finalement fonctionné.
la source
dans mon cas j'entre dans le répertoire des sous-modules sans faire
git submodule init
git submodule update
Donc git était lié au dossier parent qui manquait effectivement cette branche.
la source
vérifiez s'il ne s'agit pas d'une faute de frappe dans le nom du fichier cible. J'essayais de mettre en scène en tapant
Mais je n'ai pas remarqué que j'utilisais deux points Mais ensuite je tape
Ça marche
la source
Pour moi, c'était un problème avec mes informations d'identification
Après avoir essayé une partie de la réponse, l'un d'eux m'a aidé à résoudre le problème:
L'exécution a
git fetch
généré l'erreur suivante:Tout ce que j'avais à faire était de forcer mon IDE (VS Code dans mon cas) à se souvenir de mes informations d'identification:
Git a immédiatement synchronisé toutes les modifications et
git checkout <branche>
fonctionne bien maintenant!la source
J'obtenais la même chose
pathspec error
sur git-bash. J'ai utilisé Tortoise git sur Windows pour changer / commander la branche.la source