Как показано в разделе Как возникает «не то, что мы можем объединить»? эта ошибка может возникнуть из-за опечатки в имени ветви, потому что вы пытаетесь получить ветку, которая не существует.
Если это не проблема (как в моем случае), скорее всего, у вас нет локальной копии ветви, которую вы хотите объединить. Git требует локальных знаний обеих веток, чтобы объединить эти ветки. Вы можете решить эту проблему, выбрав ветку для слияния, а затем вернувшись к той ветке, в которую вы хотите слиться.
git checkout branch-name
git checkout master
git merge branch-name
Это должно работать, но если вы получаете сообщение об ошибке
error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.
вам нужно извлечь удаленный (возможно, но не обязательно, «origin») перед проверкой ветки:
git fetch remote-name
git fetch
сначала, прежде чем объединить удаленный филиал.Git requires local knowledge of both branches in order to merge those branches
Это глупое предложение, но убедитесь, что в названии ветки нет опечаток!
источник
Когда вытащил из удаленного апстрима,
git fetch --all
сделал трюк для меня:В других случаях я обнаружил, что ошибка «Не то, что мы можем объединить» также произойдет, если удаленная ветвь (origin, upstream) не существует. Это может показаться очевидным, но вы можете оказаться
git merge origin/develop
на репо, который только имеетmaster
.источник
git remote add upstream
чего мне не хватало, решило это для меня. Я думаю, что распространенной ошибкой является предположение, что вилка автоматически знает, откуда она была разветвлена.У меня тоже была эта проблема. Ветка выглядела как «username / master», что, похоже, сбивало с толку git, поскольку выглядело как удаленный адрес, который я определил. Для меня это
работал отлично.
источник
origin/
перед именем удаленной ветки тоже./
.Метод ниже работает для меня каждый раз.
источник
Это может произойти, потому что эта ветвь не на вашем местном. перед слиянием использования
источник
Этот ответ не связан с вышеупомянутым вопросом, но я столкнулся с подобной проблемой, и, возможно, это будет кому-то полезно. Я пытаюсь объединить мою ветку функций, чтобы освоить, как показано ниже:
для этого получил следующее сообщение об ошибке:
Я смотрел на все вышеизложенные решения, но ни один из них не работал.
Наконец, я понял, что причиной проблемы является орфографическая ошибка в имени моей ветви (на самом деле это имя ветви слияния
fix-loads
).источник
git merge origin/fix-loads
работал.Вы получаете эту ошибку, потому что ветка, которую вы хотите объединить, не существует в вашем локальном хранилище.
Итак, сначала отметьте группу, которую вы хотите объединить с главной веткой, с помощью следующей команды:
После этого попытайтесь объединить его с главной веткой следующей командой:
источник
checkout
веткуЭта ошибка говорит о том, что ветка, из которой вы хотите объединить изменения (т. Е. В вашем случае имя-ветви), отсутствует в вашей локальной сети, поэтому вам следует извлечь ветку и получить локальные изменения. Выйдите в свою основную ветку и получите, затем выполните следующие шаги:
источник
Я получил эту ошибку, когда сделал
git merge BRANCH_NAME "some commit message"
- я забыл добавить флаг -m для сообщения коммита, поэтому он подумал, что имя ветви включало комментарий.источник
По моему мнению, я пропустил сопоставление моего местного отделения с удаленным репо. Я сделал ниже, и это работало нормально.
источник
Если строка, содержащая ссылку, создается другой командой Git (или любой другой командой оболочки в этом отношении), убедитесь, что она не содержит возвратной каретки в конце. Вам придется удалить его перед передачей строки в «git merge».
Обратите внимание, что это довольно очевидно, когда это происходит, потому что сообщение об ошибке в 2 строки:
источник
Мы получили эту ошибку, потому что у нас была запятая (,) в имени ветви. Мы удалили локальную ветку, затем снова проверили ее под новым именем без запятой. Мы смогли успешно слить его.
источник
Для потомков: Как сказал AxeEffect ... если у вас нет опечаток, проверьте, есть ли у вас смешные символы в названии вашей локальной ветви, такие как запятые или апострофы. Именно это случилось со мной только сейчас.
источник
Я предлагаю проверить, можете ли вы переключиться на ветку, с которой вы пытаетесь объединиться.
Я получил эту ошибку, даже несмотря на то, что ветка, с которой я хотел объединиться, была в локальном репозитории, и там не было орфографических ошибок.
Я проигнорировал свои локальные изменения, чтобы я мог переключиться на ветку (Stash или commit также могут быть предпочтительнее). После этого я вернулся в начальную ветку, и слияние прошло успешно.
источник
Git, которую вы пытаетесь объединить, может быть не идентифицирована вашим git в настоящее время, поэтому выполните
git branch
и посмотрите, существует ли ветвь, которую вы хотите объединить, если нет, то выполните,git pull
и теперь, если вы это сделаетеgit branch
, ветвь будет видна сейчас, и теперь вы выполняетеgit merge <BranchName>
источник
Для меня проблема произошла, когда я попробовал это:
Так что на самом деле я должен был написать
master
вместоdevelop
, потому что master был именем ветви Subtree, а не моей реальной веткой.источник
Это может звучать странно, но не забудьте настроить адрес электронной почты и имя git:
источник
Для меня проблема заключалась в «двойных кавычках» в сообщении слияния. Поэтому, когда я убрал двойную отметку, все волшебным образом сработало. Я надеюсь помочь кому-то. (Извините за мой плохой английский)
источник
У меня было рабочее дерево с мастером и еще одна ветка, проверенная в двух разных рабочих папках.
Если вам нужно просто объединить последний коммит:
И то же самое, что я всегда делал:
источник