Git: невозможно оформить ветку - ошибка: pathspec '...' не соответствует ни одному из файлов, известных git - PullRequest
574 голосов
/ 13 мая 2011

Я не уверен, почему не могу оформить ветку, над которой я работал ранее. См. Команды ниже (примечание: co - псевдоним для 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.

Я не уверен, что это значит, и я не могу найти ничего, что я могу понять в Google.

Как мне оформить эту ветку и что я мог сделать, чтобы сломать это?

UPDATE

Я нашел этот пост , и запуск git show-ref дает мне:

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

ОБНОВЛЕНИЕ в .git каталоге (user_controlled_site_layouts находится в 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

ОБНОВЛЕНИЕ на 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"

Ответы [ 42 ]

8 голосов
/ 16 декабря 2014

У меня была эта проблема сегодня, я пытался git checkout foo и получил error: pathspec 'foo' did not match any file(s) known to git.

Оказывается Я был в неправильном репо .Итак, урок выучен: проверьте, на какой репо вы смотрите, прежде чем взбеситься.

7 голосов
/ 11 октября 2015

В ОС Windows по умолчанию git устанавливается с

core.ignorecase = true

Это означает, что файлы репозитория git будут нечувствительными к регистру, чтобы изменить это, вам нужно выполнить:

\yourLocalRepo> git config core.ignorecase false

youможно найти эту конфигурацию в .git \ config file

7 голосов
/ 09 августа 2018

Сначала извлеките родительскую ветвь. Затем введите

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

Надеюсь, это поможет!.

5 голосов
/ 10 декабря 2016

В моем случае у меня ДВА ветки 1) master (для живого сервера) 2) dev (тестовый сервер). Я установил несколько пультов для отправки кода на соответствующий сервер. Когда я попытался переключить ветку, я получил сообщение об ошибке типа error: pathspec 'master' did not match any file(s) known to git.

Вы можете увидеть их по git remote -v. Я удалил другой пульт, кроме origin пульт от git remote remove <remote-name>

Тогда git fetch

Теперь я могу оформить заказ на git checkout <branch-name>.

5 голосов
/ 03 марта 2015

Если это происходит в Windows, это, вероятно, проблема с именем файла.

У меня была эта ошибка сегодня - я создал новый файл, добавил в GIT, затем я изменил одну букву в имени файла с нижнего на верхний, а затем я ничего не смог - зафиксировать, отменить, удалить файл изСделки рЕПО.

Единственное решение, которое я нашел, - это снова изменить имя файла на тот же самый случай, когда я добавил этот файл в GIT, затем выполнить GIT, чтобы удалить этот файл из GIT, а затем снова изменить имя файла, как я хочу.После этих изменений я мог совершить репо, а затем нажать без проблем.

5 голосов
/ 10 июня 2013

У меня была та же проблема .. Я думал, что у меня была ветвь с именем foo, когда я пытался:

git checkout foo

Я получал:

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

Затем я попробовалполное имя филиала:

git checkout feature/foo

тогда работало на меня.

5 голосов
/ 09 декабря 2018

Я скопировал удаленный источник url из другого файла .git/config, поэтому мой новый файл .git/config отсутствовал в следующей строке в секции [remote "origin"]

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

Исправлено добавление вышеуказанной строки error: pathspec 'master' did not match any file(s) known to git.

4 голосов
/ 25 марта 2015

Произошло со мной после переименования незафиксированного файла в Android Studio.

Казалось, что Git имеет старую версию в своем хранилище, даже если ее больше не существует.

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

Поэтому я открыл графический интерфейс Git TortoiseGit, который показал мне точный файл, вызвавший проблемы.

Впоследствии я удалил файл из хранилища с помощью

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

, и проблема исчезла

3 голосов
/ 28 декабря 2016

Я столкнулся с той же проблемой, когда впервые играл с git. При попытке моего первого коммита ...

git commit -m 'first commit!'

Я получил ошибку, упомянутую в ОП ...

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

Я подумал, что мог запутать git, используя ключевое слово в сообщении коммита, поэтому я попробовал несколько других слов и получил ту же ошибку.

Наконец я использовал двойные кавычки в сообщении ...

git commit -m "first commit!"

Это оказалось успешным ...

[master (root commit) 0000000] first commit!
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 dummyDoc.txt
3 голосов
/ 01 апреля 2015

В моем случае я переименовал файл, изменив регистр файла, т.е. SomeFile.js -> someFile.js

Я думаю, это было связано с проблемой. Выполнение git fetch не решило проблему.

Я переместил файлы из своего проекта, сделал выборку и сделал push без них. Затем я сделал выборку, добавил их обратно и сделал толчок, и это сработало. Я не знаю, были ли все эти шаги необходимы, но в конечном итоге это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...