Git: невозможно оформить ветку - ошибка: pathspec '…' не соответствует ни одному из файлов, известных git

706

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

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

ОБНОВЛЕНИЕ :

Я нашел этот пост , и бег 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"
Рамон Тайаг
источник
Может ли это помочь? stackoverflow.com/questions/2527355/…
Болдевин
Работает ли это , если вы: git checkout refs/heads/user_controlled_site_layouts?
Марк Лонгэйр
2
Марк - нет, все равно получаю ту же ошибку.
Рамон Тайаг
1
Видя ваше обновление, я не уверен, как у вас есть ветка, которая появляется, git branch -aно не в git show-ref. Файл .git/refs/heads/feature/user_controlled_site_layoutдействительно существует? Если так, что cat .git/refs/heads/feature/user_controlled_site_layoutдает?
Марк Лонгэйр
1
Я получил ту же ошибку, я создал ветку из другого репо и пытаюсь оформить эту ветку в другом репо. Так что я получил это из-за разных репо.
Кушан Гунасекера

Ответы:

947

Попробуйте, git fetchчтобы ваш локальный репозиторий получал всю новую информацию от github. Он просто берет информацию о новых ветвях и не содержит фактического кода. После этого git checkoutдолжно работать нормально.

MarkoHiel
источник
19
Для дальнейшего разъяснения git fetchполезно, когда вам нужно синхронизировать ваш локальный репозиторий с удаленным репозиторием, но вы не хотите объединять изменения в вашей рабочей папке.
Марк Лаката
138
В случае клона с несколькими пультами git checkout Branchне работает. При использовании нескольких пультов только имя филиала неоднозначно и требует указания удаленного / филиала. Команда git checkout -b branch remote/branchработает в этом сценарии.
Умайр Исхак
1
Мне удалось как-то создать локальный «мастер», поэтому, хотя «git fetch» ​​приблизил меня, мне пришлось сначала удалить свой локальный мастер («git branch -d master»), прежде чем переключиться на удаленный мастер («git checkout»). мастер"). В случае, если это помогает любому, кто так же глуп, как я!
Джейми Браун
1
@ Алекс, это не принятый ответ, потому что он не имеет ничего общего с вопросом ОП. Он больше не мог проверять ветку, которую он ранее проверил (т.е. создал) локально . Тот факт, что другие люди с другой, гораздо более простой проблемой нашли и проголосовали за этот ответ (который является тривиальным и хорошо известен любому пользователю git с опытом работы более двух дней), не означает, что OP должен его принять.
Майкл Джонстон
12
git fetchмог бы сделать работу. Но он может не получить все ветки удаленно. Вам нужно будет установить шаблон соответствия выборки. git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"см. stackoverflow.com/questions/11623862/…
Jichao
363

Я получал эту ошибку, когда пытался оформить заказ на новую ветку:

ошибка: pathspec 'BRANCH-NAME' не соответствует ни одному из файлов, известных git.

Когда я попытался git checkout origin/<BRANCH-NAME>, я получил отдельную ГОЛОВУ:

(отделено от происхождения /)

Наконец, я сделал следующее, чтобы решить проблему :

git remote update
git fetch 
git checkout --track origin/<BRANCH-NAME>
Mayank
источник
15
с этой командой "checkout" у меня есть это сообщение: fatal: Невозможно обновить пути и переключиться на ветку 'foo' одновременно.
NEOline
1
После того, как я вручную изменил удаленный адрес, я не смог оформить новые ветки. "Git Remote Update", казалось, сделал свое дело.
Мартин
без «git remote update» это не сработало. Спасибо!
Кристиан Цветанов
git checkout --track origin/staging fatal: git checkout: --track and --no-track require -bgit version 1.5.6.5
Иван
Используется следующая вместо третьей командыgit checkout -b staging --track origin/staging
Иван
152

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

git checkout feature/foo

в прошлом, чтобы обойти эту ошибку, мне пришлось

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

Я понятия не имею, что я сделал, чтобы попасть в эту ситуацию.

Грегори Макинтайр
источник
1
К сожалению, я не отправил его на удаленный сервер git.
Рамон Тайаг
Это сработало для меня. Это случилось на git v 1.6 на машине FC10.
FractalSpace
26
Git обычно угадывает удаленную ветвь для проверки, но при использовании более одного удаленного кажется, что он больше не может этого делать. Источник: makandracards.com/makandra/…
Элайджа Линн
1
я делаю git checkout / foo вместо git checkout, foo работает для меня
Алехандро Морено
это начало происходить со мной (в репо со множеством пультов и сотнями веток, из которых я успешно проверял ветки из источника в течение 3 лет), и я был озадачен. После проверки я обнаружил, что добавил новый пульт, и я сделал это с помощью копирования / вставки в текстовом редакторе вместо использования команды git, и забыл изменить fetch = +refs/heads/*:refs/remotes/origin/*строку в соответствии с новым удаленным именем. ЛОЛ. Может быть, это случилось с Макандрой? потому что после исправления, проверка ветви снова получает его из источника, хотя у меня много пультов.
Майкл Джонстон
91

Если вы удалили ветку с помощью git branch -D yourbranchnameсвоего репо и снова вытащили / клонировали его, возможно, вам придется снова создать локальную ветку.

Пытаться:

git checkout -b yourbranchname
Франсиско Альварес
источник
эта опция всегда работает, даже если файлы уже изменены, и вы хотите отправить их во вновь созданную ветку.
Нериус Джок
Это был полезный комментарий, потому что в то время как я разделял ту же проблему / вопрос, что и ОП, предоставленные ответы предполагали простую ситуацию. К сожалению, в моей ситуации я ранее создал ТОЛЬКО локальную ветвь, а затем удалил ее, как отметил @Francisco Alvarez, поэтому, как бы я ни пытался применить другие решения, я не смог вытащить новую удаленную ветку. Этот ответ спас мой бекон.
Дэвид
61

У меня есть те же вопросы, и я получил некоторую информацию по этой ссылке: git fetch не выбирает все ветки

Поэтому сейчас я не уверен, как эта ситуация произошла, по крайней мере, мы можем ее решить:

Шаг 1. Проверьте настройки «remote.origin.fetch», должно быть так

$ git config --get remote.origin.fetch

+ Ссылки / главы / private_dev_branch: ссылки / пультов ДУ / происхождение / private_dev_branch

Шаг 2. Измените «remote.origin.fetch», чтобы получить все

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

$ git config --get remote.origin.fetch

+ Ссылки / главы / *: ссылки / пультов ДУ / происхождение / *

Затем вы можете попробовать "git pull" (возможно, "git fetch origin" также работает, но я не пытался), чтобы получить всю ветку.

bearzyj
источник
@onionjake прав, извините, что я не проверял вопросы во всех деталях. Просто я получил те же сообщения об ошибках при попытке выполнить то же действие «git checkout <existed_branch>», но на самом деле он отличается от проблемы отправителя ----- отправитель мог видеть ветку локально, а я - нет. Мой ответ может решить проблему, для которой не удалось получить все ветки заранее. Но не ситуация для проблемы оригинатора.
Медвежий
3
Многие люди, в том числе и я, получают эту ошибку, потому что они могут клонировать репозиторий с флагом --branch, поэтому даже после git fetch они не получают другие ветви и не могут извлекать что-либо с удаленного компьютера. Это исправляет эту проблему. Спасибо!
Ориф Ходжаев
Большое спасибо. Я использовал образ decker docker tenorflow, и он ограничивает ветку определенной версией. После настройки загрузки конфигурации, теперь я могу оформить заказ.
Michael_Zhang
24

Пользователи Git Windows остерегаются - без параметра --icase-pathspecsили GIT_ICASE_PATHSPECS = 1 env var эти git pathspecs будут чувствительны к регистру, в этом случае

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

это не то же самое, что

git checkout origin/FooBranch "some/path/to/file.Txt"
StuartLC
источник
1
Следует отметить, что из документации не ясно, что --icase-pathspecsпараметр должен -C <path>
указываться
21

Если в имени ветви нет незафиксированного файла, попробуйте

git fetch && git checkout <branch name>
Саджин М Абуобаккар
источник
Похоже, это вообще не связано с вопросом?
луковица
Я получил ту же проблему, о которой говорилось выше, и решил ее с помощью следующих команд
Саджин М Абообаккар,
19

Я столкнулся с проблемой при переключении моей ветви.

Я сделал git pull на текущую ветку, а затем попытался проверить новую, и это сработало

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

Анкит Мароти
источник
Действительно полезно :)
Викифор
Почему это работает? Делает git pullли больше, чем тянуть текущую ветку?
Кэмерон Хадсон
Это может быть просто случай, когда вы пытаетесь извлечь ветку, созданную кем-то другим, но это еще не сделано в вашем текущем репо.
Анкит Мароти
15
git pull

Это просто исправило это для меня :)

OpMt
источник
13

У меня такая же проблема, потому что я использовал git clone --depth=1, что подразумевает --single-branch.

У законченного git cloneбудет все исправлено.

Huachao Huang
источник
Спасибо за указание на это. Это точно та же проблема, с которой я столкнулся. Спасибо
Мукеш Кумар
Полный клон может не потребоваться. Если ветвь создана кем-то еще ПОСЛЕ того, как вы изначально клонировали репо, вы получите эту ошибку, потому что ваше локальное репо не имеет никакой информации об этой новой ветке. Просто переключитесь на мастера и сделайте git pull. Затем попробуйте оформить заказ на новую ветку.
Ясин
12

Я получил это, когда я сделал следующее:

  • Используется IntelliJ IDE, подключенный к git
  • Создал новый файл и добавил в git
  • Переименовал новый файл

Когда я попытался проверить в каталоге, я получил эту ошибку.

Исправить:

Я открыл репо в расширениях git. Я видел, что файл (со старым именем) был поставлен. Но поскольку его больше не было, его нельзя было совершить.

Я просто unstaged этот файл.

Затем я повторно добавил файл (на этот раз правильно названный) в git и зафиксировал без ошибок.

Сомайя Кумбера
источник
Самое смешное, что он все еще работает с TortoiseGit, даже если он не работает по-интеллигентно
Marian Klühspies
3
Это мне очень помогло. Я использовал SourceTree , чтобы найти , что Р * ск г файла и unstaged его.
Винченцо
10

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

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

Джеймс Харрингтон
источник
Ха - да, это был я - создал ветку в Bitbucket из билета Jira, не заметил, что он создал это в каком-то случайном репо
Keir
sidenote: я работал с несколькими пультами, один из которых был настроен правильно, а другой указывал на неправильный репозиторий. ооочень. спасибо за напоминание, я мог легко увидеть свою проблему, когда я сделал git remote -v
Dreamling
9

Я получил эту ошибку при попытке оформить ветку через:

git checkout branchX

который я не проверил раньше. Это работало только при явном указании удаленного:

git checkout --track origin/branchX

Причиной этого было то, что у меня было 2 разных пульта (origin + sth. Else), настроенных в git config. Поскольку мне не нужен второй пульт, я снял его и вуаля, он работал. Альтернатива для установки удаленного по умолчанию через:

checkout.defaultRemote=origin

у меня не сработало

RS1980
источник
Я добавил этот ответ, потому что все остальные предложенные ответы не сработали для меня, поэтому я надеюсь, что это поможет кому-то, кто имеет ту же причину (2 пульта).
RS1980
8

Во-первых, проверьте родительскую ветвь. Затем введите

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

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

Шрадхей Трипати
источник
8

Я исправил это, изменив мой файл конфигурации git. Проверьте ваш файл конфигурации в вашем каталоге git - .git\config

Ранее было

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

Я исправил, изменив его

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

Обратите внимание, что заголовок указывает только на одну ветку, поэтому он не может найти ссылку на другие существующие ветви, я изменил ее на *, чтобы она проверяла все в источнике.

жесткий
источник
Спасибо, приятель, часы усилий и, наконец, я приземлился с твоим решением.
Сунил Люлла
7

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

core.ignorecase = true

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

\yourLocalRepo> git config core.ignorecase false

Вы можете найти эту конфигурацию в файле .git \ config

Василе Борс
источник
7

Я скопировал удаленный источник 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.

AamirR
источник
6

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

git checkout foo

Я получаю:

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

Тогда я попробовал полное название ветки:

git checkout feature/foo

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

tokhi
источник
5

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

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

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

Марчин Набиалек
источник
Это помогло, но следует упомянуть, чтобы сделать переименование через git mv. Думаю, вы сделали это таким образом, потому что мне это не удалось сделать с помощью моей IDE (IntelliJ PhpStorm) ...
Dennis98
5

В моем случае у меня есть ДВА ветки 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

Я столкнулся с той же проблемой, когда впервые играл с 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
TheLastGIS
источник
5

Я сделал глупую ошибку, не указав флаг -m при фиксации (смеется)

git commit -m "commit message in here"
Аджайн Вивек
источник
та же ситуация здесь. просто забудьте "-m" получить ту же ошибку.
Niuya
5

У меня была другая причина

У меня был сценарий, который в основном ищет во всех ветвях, соответствующих ключу выпуска jira для «PRJ-1234» среди всех ветвей, чтобы выполнить команду проверки ветки git в соответствующей ветке

Проблема в моем случае заключалась в том, что 2 или более веток использовали один и тот же ключ jira и, следовательно, приводили к сбою моего скрипта с вышеупомянутой ошибкой

Удалив старую неиспользуемую ветвь и убедившись, что ссылка на ключ jira была исправлена ​​только в одной ветке

Вот мой код на случай, если кто-то захочет его использовать

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

сохранить это как switchbranch.sh

Тогда используйте его из терминала ./switchbranch.sh PRJ-1234

Korayem
источник
Для меня это был также правильный восходящий путь / имя, включая выборку всех удаленных тегов, а также "git fetch --all --tags --prune", найдя правильное имя: "git branch -a | grep some_upstream" перед проверкой его на полный путь как «мерзавец фотографии -f --track -b new_branch пультов ДУ / вверх / some_upstream_branch»
kisna
4

Ни один из этих ответов не решил мою проблему:

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.

Я пытался вернуться и создать коммит для Version object v2.0.1. К счастью, у меня появилась идея попробовать весь хэш-код, и это сработало! Это означает, что я использовал неправильный конец хеш-кода.

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...))
$

Как показано выше, для частичных хеш-кодов вы должны указать внешний интерфейс, а не внутренний.

Nikolaii99
источник
4

Произошло со мной после переименования незафиксированного файла в 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

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

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

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

койка
источник
Push без переименованного файла и выдачи файла git add впоследствии сделал это для меня
phil294
3

в моем случае я вхожу в подмодульную директорию без

  • git submodule init
  • git submodule update

Так что git был связан с родительской папкой, которая действительно пропустила эту ветку.

Илья Газман
источник
3

проверьте, не является ли это опечаткой в ​​имени целевого файла. Я пытался поставить, набрав

git add includes/connection..php

Но я не заметил, что я использовал две точки, но потом я печатаю

git add includes/connection.php

Оно работает

Маттеус Барбоза
источник
2

Для меня это была проблема с моими полномочиями


Попробовав некоторые ответы, один из них помог мне решить проблему:

Запуск git fetchвыкинул следующую ошибку:

Не удалось разрешить хост: bitbucket.org

Все, что мне нужно было сделать, это заставить мою IDE (VS Code в моем случае) запомнить мои учетные данные:

git config --global credential.helper wincred

Git сразу синхронизировал все изменения и git checkout <branche>теперь работает нормально!

Джеффри Розендал
источник
1

Я получал то же самое pathspec errorна git-bash. Я использовал Tortoise Git на Windows, чтобы переключить / оформить ветку.

капитан
источник