Почему я получаю сообщение «Неустранимый: эта операция должна выполняться в рабочем дереве»? - PullRequest
59 голосов
/ 22 сентября 2009

Только что установил git на Windows. Я установил для переменной GIT_DIR значение c: \ git \ и убедился, что эта переменная среды поддерживается cygwin (то есть echo $ GIT_DIR - это то, что должно быть) Я пошел в папку, для которой я хотел создать репозиторий git, скажем, c: \ www, и запустил:

git init
git add .

Тогда я получаю ошибку:

fatal: This operation must be run in a work tree

Я не уверен, что пошло не так, но в каталоге c: \ git есть файл конфигурации, который говорит:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = true
    symlinks = false
    ignorecase = true

Я почти уверен, что это не должно быть голым, и это наша проблема.

Ответы [ 14 ]

0 голосов
/ 11 июня 2019

Если больше ничего не работает, дважды проверьте путь в git config core.worktree. Если этот путь не указывает на ваш рабочий каталог, возможно, вам придется его обновить.

Способ, которым я получил эту ошибку, заключался в том, что я создал Git-репозиторий на сетевом диске. На одном компьютере он работал нормально, но на другом возвращал эту ошибку. Оказалось, что я сопоставил диск букве диска Windows на компьютере, где я его создал, но не на другом компьютере, и Git сохранил путь к рабочему дереву как сопоставленный путь, а не путь UNC.

0 голосов
/ 08 января 2019

Отредактировал файл конфигурации и изменил голый = правда в голый = ложный

0 голосов
/ 16 января 2018

Та же проблема, что и у меня, я сделал следующие шаги,

  1. git init
  2. git add.
  3. git commit -m "Начальная настройка"
  4. git push -f origin master

потом начинает работать.

0 голосов
/ 11 декабря 2015

Если ни один из описанных выше обычных способов не поможет вам, посмотрите на трассировку вызовов под этим сообщением об ошибке ("fatal: This operation . . .") и найдите сценарий и строку, которая вызывает фактическую ошибку. Как только вы обнаружите этот вызов error (), отключите его и посмотрите, завершается ли операция, которую вы пытаетесь завершить, даже с некоторыми предупреждениями / сообщениями - пока игнорируйте их. Если это так, то, наконец, после завершения он может упомянуть ту часть операции, которая не была успешно завершена. Теперь рассмотрим эту часть отдельно, если применимо.

Относительно вышеупомянутой логики к моему случаю, я получал это сообщение об ошибке "fatal: This operation . . .", когда пытался получить код Android-x86 с repo sync . . .. и трассировка вызовов показала raise GitError("cannot initialize work tree") как вызов error (), вызывающий указанное выше сообщение об ошибке ("fatal: . . ."). Итак, после комментирования, что GitError() в .repo/repo/project.py, repo sync . . . продолжалось и, наконец, указывало на ошибку для трех проектов, которые не были должным образом синхронизированы. Я просто удалил их папки *.git из соответствующих им путей в дереве исходников Android-x86 локально, снова запустил repo sync . . . и попробовал на вкус!

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