Git: kan branch niet uitchecken – fout: pathspec ‘…’ kwam niet overeen met (een) bestand(en) bekend bij git

Ik weet niet zeker waarom ik niet in staat ben om af te rekenenbij een branch waar ik eerder aan heb gewerkt. Zie onderstaande commando’s (let op: cois een alias voor checkout):

[email protected]:~/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
[email protected]:~/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.

Ik weet niet zeker wat het betekent en ik kan niets vinden dat ik begrijp op Google.

Hoe kan ik die tak afrekenen en wat heb ik gedaan om dit te doorbreken?

UPDATE:

Ik heb dit berichtgevonden en actief git show-refgeeft me:

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

UPDATE op .gitdirectory(user_controlled_site_layoutsstaat in de 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

UPDATE op 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"

Antwoord 1, autoriteit 100%

Probeer git fetchzodat uw lokale repository alle nieuwe info van GitHub krijgt. Het neemt gewoon de informatie over nieuwe takken en geen daadwerkelijke code. Daarna moet de git checkoutgoed werken.


Antwoord 2, Autoriteit 38%

Ik kreeg deze foutmelding toen ik probeerde een nieuwe tak te uitchecken:

FOUT: PATHSPEC ‘TAIL-NAAM’ kwam niet overeen met elk bestand (en) dat bekend is bij Git.

Toen ik deed git checkout origin/<BRANCH-NAME>, kreeg ik de vrijstaande kop:

(los van herkomst /)

Ten slotte heb ik het volgende gedaan om het probleem op te lossen :

git remote update
git fetch 
git checkout --track origin/<BRANCH-NAME>

Antwoord 3, Autoriteit 15%

Ik kreeg deze fout voor een tak die afstandsbed is van en had geen lokale trackingtak. Ook al ben ik er zeker van dat ik externe filialen heb ingecheckt via een eenvoudig

git checkout feature/foo

In het verleden, om deze fout te vinden, moest ik

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

Ik heb geen idee wat ik deed om mezelf ook in die situatie te krijgen.


Antwoord 4, Autoriteit 10%

Als u een filiaal verwijdert met git branch -D yourbranchnameen opnieuw getrokken / gekloond uw repo, moet u mogelijk opnieuw uw lokale tak maken.

Probeer:

git checkout -b yourbranchname

Antwoord 5, Autoriteit 9%

Ik heb dezelfde vragen en kreeg wat informatie van deze link: git fetch ‘t fetch alle takken

Dus nu, ik weet misschien niet zeker hoe deze situatie is gebeurd, tenminste kunnen we het oplossen:

Stap 1.Controleer uw “remote.origin.fetch”-instelling, zou als volgt moeten zijn

$ git config –get remote.origin.fetch

+refs/heads/private_dev_branch:refs/remotes/origin/private_dev_branch

Stap 2.Wijzig “remote.origin.fetch” om alles op te halen

$ git config remote.origin.fetch “+refs/heads/*:refs/remotes/origin/*”

$ git config –get remote.origin.fetch

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

Vervolgens kun je “git pull” proberen (misschien werkt “git fetch origin” ook maar ik heb het niet geprobeerd) om alle branch te krijgen.


Antwoord 6, autoriteit 3%

Ik had hetzelfde probleem voor een van mijn filialen.

Deze commando’s werken voor mij.

git fetch --all
git checkout <branch-name>

Antwoord 7, autoriteit 2%

Git Windows-gebruikers opgelet – zonder de --icase-pathspecsof GIT_ICASE_PATHSPECS = 1env var instelling, dat git pathspecs hoofdlettergevoelig zal zijn, in welk geval

git checkout origin/FooBranch "some/path/to/file.Txt"

is niet hetzelfde als

git checkout origin/FooBranch "some/path/to/file.Txt"

Antwoord 8, autoriteit 2%

Als de filiaalnaam en u geen niet-gecommitteerd bestand heeft, probeer dan dit

git fetch && git checkout <branch name>

Antwoord 9, autoriteit 2%

Ik ondervond het probleem toen ik van branch veranderde.

Ik deed een git pull op de huidige branch en probeerde toen de nieuwe af te rekenen en het werkte

git pull // on your old branch
git checkout <new_branch>


Antwoord 10, autoriteit 2%

git pull

Dat loste het gewoon voor mij op 🙂


Antwoord 11

Ik kreeg deze foutmelding bij het afrekenen van een filiaal via:

git checkout branchX

die ik nog niet eerder had uitgecheckt.
Het werkte alleen als de afstandsbediening expliciet werd vermeld:

git checkout --track origin/branchX

De reden hiervoor was dat ik 2 verschillende afstandsbedieningen (origin + sth. else) had geconfigureerd in git config. Omdat ik de tweede afstandsbediening niet nodig had, heb ik hem verwijderd en voilá, het werkte. Het alternatief om de standaard afstandsbediening in te stellen via:

checkout.defaultRemote=origin

werkte niet voor mij


Antwoord 12

Ik kreeg hetzelfde probleem omdat ik git clone --depth=1gebruikte, wat --single-branchimpliceert.

Doe een voltooide git clonezal het repareren.


Antwoord 13

Ik heb het opgelost door mijn git-configuratiebestand aan te passen
Controleer het configuratiebestand in je git-directory – .git\config

Het had eerder

[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/develop:refs/remotes/origin/develop

Ik heb het opgelost door het te wijzigen in

[remote "origin"]
url = http://git.xyz.com/abc-group/pqr.git
fetch = +refs/heads/*:refs/remotes/origin/*

Merk op dat de kop naar slechts één vertakking wees, dus het kon de verwijzing naar andere bestaande vertakkingen niet vinden, ik veranderde het in * zodat het alles in oorsprong controleert.


Antwoord 14

Ik kreeg dit toen ik het volgende deed:

  • IntelliJ IDE gebruikt, verbonden met git
  • Een nieuw bestand gemaakt en toegevoegd aan git
  • Het nieuwe bestand hernoemd

Toen ik probeerde in te checken in de directory, kreeg ik deze foutmelding.

Oplossen:

Ik heb de repo geopend in git-extensies. Ik zag dat het bestand (met de oude naam) geënsceneerd was. Maar aangezien het niet meer bestond, kon het niet worden vastgelegd.

Ik heb dit bestand eenvoudigweg niet gestudeerd.

Dan heb ik het bestand opnieuw toegevoegd (deze tijd correct genoemd) in Git en toegewijde zonder fouten.


Antwoord 15

Ik had dit probleem vandaag nog steeds probeerde ik git checkout fooen kreeg error: pathspec 'foo' did not match any file(s) known to git.

Het blijkt ik had in de verkeerde repo . Dus les geleerd: controleer op welke repo je kijkt voordat je eruit kijkt.


Antwoord 16

Ik heb de oorsprong van externe oorsprong gekopieerd urlvan een ander .git/configBestand, DOEN MIJN NIEUWE .git/configBestand ontbrak de volgende regel In [remote "origin"]sectie

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

Bovenste lijn vaste error: pathspec 'master' did not match any file(s) known to git.


Antwoord 17

Eerste, uitcheck-bovenliggende tak. Type

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

Ik hoop dat het helpt!.


Antwoord 18

Nou, ik had weinig verwijderde takken zoals dev / {feature_branch} en toen ik een nieuwe branche Dev heeft gemaakt en probeerde het uit te checken, kreeg ik hetzelfde probleem. Ik heb de onderstaande opdracht

git fetch -p

en werkte voor mij.


Antwoord 19

op Windows OS standaard is GIT geïnstalleerd met

core.ignorecase = true

Dit betekent dat Git Repo-bestanden niet-ongevoelig zijn, om dit te wijzigen, moet u uitvoeren:

\yourLocalRepo> git config core.ignorecase false

U kunt deze configuratie vinden op .git \ config bestand


Antwoord 20

Ik heb ditzelfde probleem tegengekomen toen ik voor het eerst met Git speelde. Bij het pogingen van mijn eerste commit …

git commit -m 'first commit!'

Ik kreeg de fout genoemd door de OP…

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

Ik dacht dat ik git misschien in de war had gebracht door een trefwoord in het commit-bericht te gebruiken, dus ik probeerde een paar andere woorden en kreeg dezelfde foutmelding.

Eindelijk gebruikte ik dubbele aanhalingstekens in het bericht…

git commit -m "first commit!"

Dit bleek succesvol te zijn…

[master (root commit) 0000000] first commit!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummyDoc.txt

Antwoord 21

Ik had een domme fout gemaakt door de vlag -m niet op te geven tijdens het plegen (lol gebeurt)

git commit -m "commit message in here"

Antwoord 22

Ik had hetzelfde probleem.. Ik dacht dat ik een branch had met de naam footoen ik het volgende probeerde:

git checkout foo

Ik kreeg:

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

Toen probeerde ik de volledige naam van het filiaal:

git checkout feature/foo

werkte toen voor mij.


Antwoord 23

Drie stappen

  1. Schrijf een commando ‘git fetch’
  2. dan zie je de gewenste branch en schakel dan over naar de relevante branch ‘git checkout ‘your_branch_name’
  3. schrijf dan een commando ‘git pull origin your_desired_branch_name’

Antwoord 24

Als het in Windows gebeurt, is het waarschijnlijk het probleem met de bestandsnaam.

Ik had vandaag deze fout – ik heb een nieuw bestand gemaakt, toegevoegd aan GIT, daarna heb ik een letter in de bestandsnaam gewijzigd van lager naar hoger en toen kon ik niets meer – vastleggen, terugzetten, bestand verwijderen uit repo.

De enige oplossing die ik vond, was de bestandsnaam weer terug naar exact hetzelfde geval toen ik dit bestand aan Git aan de git heeft toegevoegd, en vervolgens git terugdraaien om dit bestand van Git te verwijderen en vervolgens de bestandsnaam opnieuw te veranderen zoals ik wil. Na die wijzigingen kon ik me verbinden aan repo en duw dan zonder problemen.


Antwoord 25

In mijn geval heb ik twee filiaal 1) Master (die voor live server) 2) dev (testserver) is. Ik had meerdere afstandsbediening ingesteld om op de respectieve server code te drukken. Toen ik de tak probeerde te schakelen, kreeg ik de foutmelding als error: pathspec 'master' did not match any file(s) known to git.

U kunt ze bekijken met git remote -v.
Ik had andere afgelegen verwijderd, behalve originAfgelegen door git remote remove <remote-name>

Dan git fetch

Nu ben ik in staat om het filiaal te checken met git checkout <branch-name>.


Antwoord 26

Ik had een andere oorzaak

Ik had een script dat in feite alle takken doorzoekt bij het matchen van Jira-probleem in de voor “PRJ-1234” van alle takken om een ​​CHECKOUT-opdracht voor Git Branch uit te voeren op de overeenkomende tak

Het probleem in mijn geval was 2 of meer filialen gedeeld dezelfde JIRA-sleutel en zorgde er dus dat mijn script faalt met de bovengenoemde fout

Door de oude ongebruikte filiaal te verwijderen en ervoor te zorgen dat alleen een enkele tak de JIRA-sleutelreferentie het probleem

heeft vastgesteld

Hier is mijn code voor het geval iemand het

wil gebruiken

git remote update
git fetch --all --prune 
git branch -r --list *$1* | xargs git checkout --force

Bewaar dit als switchbranch.sh

Gebruik het vervolgens vanaf de terminal ./switchbranch.sh PRJ-1234


Antwoord 27

Geen van deze antwoorden opgelost mijn probleem:

[email protected] ~/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
[email protected] ~/Documents/NetBeansProjects/Version (master)
$ git checkout 3a796a
error: pathspec '3a796a' did not match any file(s) known to git.

Ik probeerde terug te gaan en de commit voor Version object v2.0.1te bouwen. Gelukkig heb ik het idee om de hele hash-code te proberen en het werkte! Wat betekent dat ik het verkeerde einde van de hash-code gebruikte.

[email protected] ~/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
[email protected] ~/Documents/NetBeansProjects/Version ((2ff2a28...))
$

Zoals hierboven weergegeven, moet u voor gedeeltelijke hash-codes het front-end leveren, niet het back-end.


Antwoord 28

is met mij gebeurd nadat u een ongecommitteerd bestand in Android Studio hebt hernoemd.

Git leek de oude versie in de repository te hebben, zelfs als het niet meer bestond.

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

Dus opende ik de Git Gui van Tortoisegit die me het exacte bestand toonde dat problemen veroorzaakte.

Daarna verwijderde ik het bestand van de repository met

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

En het probleem was verdwenen


Antwoord 29

Controleer of het geen typfout is in de naambestandsnaam. Ik probeerde naar het podium door

te typen

git add includes/connection..php

Maar ik merkte niet dat ik twee stippen gebruikte
Maar dan typ ik

git add includes/connection.php

het werkt


ANTWOORD 30

In mijn geval had ik een bestand hernoemd die de behuizing van het bestand veranderde, d.w.z.
Somefile.js – & GT; somefile.js

Ik denk dat dat gerelateerd was aan het probleem. Het doen van een git-fetch heeft het probleem niet opgelost.

Ik heb de bestanden uit mijn project verplaatst, heb ze opgehaald en zonder ze gepusht. Toen deed ik een fetch, voegde ze weer toe en deed een push, en het werkte. Ik weet niet of al die stappen nodig waren, maar het werkte uiteindelijk wel.

Other episodes