Git checkout: обновление путей несовместимо с переключением веток

Использование DirectoryIterator эквивалентно предыдущему ответу ...

function deleteFolder($rootPath)
{   
    foreach(new DirectoryIterator($rootPath) as $fileToDelete)
    {
        if($fileToDelete->isDot()) continue;
        if ($fileToDelete->isFile())
            unlink($fileToDelete->getPathName());
        if ($fileToDelete->isDir())
            deleteFolder($fileToDelete->getPathName());
    }

    rmdir($rootPath);
}
460
задан Community 23 May 2017 в 11:54
поделиться

4 ответа

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

git remote show origin

Если удаленная ветка, которую вы хотите оформить, находится в разделе «Новые удаленные ветки», а не «Отслеживаемые удаленные ветки», вам нужно сначала получить их:

git remote update
git fetch

Теперь все должно работать:

git checkout -b local-name origin/remote-name
736
ответ дан 22 November 2019 в 22:55
поделиться

Может ли ваша проблема быть связана с этим другим вопросом SO «проблема проверки» ?

то есть: проблема, связанная с:

  • старой версией Git
  • любопытный синтаксис проверки, который должен быть: git checkout -b [<новая_ ветка>] [<начальная_ точка>] , где [<начальная_пункт>] относится к имени фиксация, с которой начинается новая ветка, а 'origin / remote-name' не то.
    (тогда как git branch действительно поддерживает start_point, являющийся именем удаленной ветки)

Примечание: в сценарии checkout.sh говорится следующее:

  if test '' != "$newbranch$force$merge"
  then
    die "git checkout: updating paths is incompatible with switching branches/forcing$hint"
  fi

Это похоже на синтаксис git checkout -b [] [remote_branch_name] одновременно переименовал ветвь и сбрасывал новую начальную точку новой ветки, которая считается несовместимой.

1
ответ дан 22 November 2019 в 22:55
поделиться

Alternate syntax,

git fetch origin remote_branch_name:local_branch_name
148
ответ дан 22 November 2019 в 22:55
поделиться

I suspect there is no remote branch named remote-name, but that you've inadvertently created a local branch named origin/remote-name.

Is it possible you at some point typed:

git branch origin/remote-name

Thus creating a local branch named origin/remote-name? Type this command:

git checkout origin/remote-name

You'll either see:

Switched to branch "origin/remote-name"

which means it's really a mis-named local branch, or

Note: moving to "origin/rework-isscoring" which isn't a local branch
If you want to create a new branch from this checkout, you may do so
(now or later) by using -b with the checkout command again. Example:
  git checkout -b 

which means it really is a remote branch.

4
ответ дан 22 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: