Получите «убедитесь, что файл .gitmodules находится в рабочем дереве» при запуске команды добавления подмодуля git - PullRequest
2 голосов
/ 26 мая 2020

Я новичок в git, в настоящее время собираюсь перенести несколько крупных проектов из Mercurial. У нас есть проект root, который просто содержит ссылки на все внешние проекты (подмодули в git). Я пытаюсь воссоздать это в git.

Я импортировал проект (foo) в githib. Я создал новый пустой проект (root) и клонировал его локально. Я хочу добавить Foo в качестве подмодуля, используя

git submodule add https://github.com/.../foo.git

из / c / Work / GitHub / root (master)

, но я продолжаю получать «пожалуйста, убедитесь, что. Файл gitmodules находится в рабочем дереве ".

Глядя на документацию, при первом запуске этой команды должен быть создан файл .gitmodules, но я получаю эту ошибку, даже если создаю ее вручную. Поиск этой ошибки в Google просто возвращает исходные файлы с ошибкой, но без объяснения того, почему я ее получаю. Я полагаю, это просто мое плохое понимание git.

Что я делаю неправильно?

РЕДАКТИРОВАТЬ: Я тоже пробовал.

mkdir test
cd test
git init
git submodule add https://github.com/.../foo.git

Я получить ту же ошибку.

Ответы [ 3 ]

4 голосов
/ 26 мая 2020

Проверка , которую вы, вероятно, не прошли, имеет вид :

int is_writing_gitmodules_ok(void)
{
        struct object_id oid;
        return file_exists(GITMODULES_FILE) ||
                (get_oid(GITMODULES_INDEX, &oid) < 0 && get_oid(GITMODULES_HEAD, &oid) < 0);
}

Это означает, что либо файл существует локально, либо не существует в промежуточная область или текущая HEAD фиксация.

Вы использовали git add, но затем удалили его из рабочего каталога.

Используйте git restore .gitmodules (или аналогичный), чтобы перенести существующий файл обратно в рабочий каталог.

0 голосов
/ 24 июля 2020

Аппаратный сброс, например, до последней фиксации или фиксация всех изменений, решила проблему для меня.

Я думаю, что в этом случае сообщение должно быть что-то вроде «сначала зафиксируйте свои изменения» или около того.

0 голосов
/ 26 мая 2020

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

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