Почему я иногда вижу & ldquo; имя файла «имя файла» не обновлено. Невозможно объединить. & Rdquo; после «git reset --hard» и «git pull»?

В нашем проекте у нас была аналогичная вещь. Мы создали поля как модуль. Немного похоже на это:

module SpecialFields
  extend ActiveSupport::Concern

  included do
    field :my_field, type: String
    field :my_other_field, type: String
  end
end

Затем в вашем классе, где вы хотите вставлять, просто выполните:

include SpecialFields

В вашем классе, который вы хотели бы сохранить отдельно, как не-внедренный документ, сделайте следующее:

class NotEmbeddedDoc
  include Mongoid::Document

  include SpecialFields
end

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

16
задан James Bobowski 18 May 2009 в 16:24
поделиться

2 ответа

Общая идея « Запись 'filename' не обновлена. Невозможно объединить. »:

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

было сообщено , что это сообщение могло быть "ложным" во время (возможно, потому что " git pull " не обновлял индекс перед попыткой слияния), но исправление было в Git1.6.1.
Однако он все еще может быть в mSysGit 1.6.1, так что вы видите ту же ошибку в более поздней версии mSysGit? (например, 1.6.3)

12
ответ дан 30 November 2019 в 12:01
поделиться

Это также могло бы произойти из-за использования --skip-worktree или --assume-unchanged, команды и мерзавец предотвращают Вас, чтобы сделать: checkout, merge, rebase или pull.

пропущенные файлы/каталог не могли бы работать, если мы делаем следующий подход:

  • git stash
  • git merge --abort, &
  • git rm --cached это также не работает на skipped, регистрируют эту команду, бросит: fatal: pathspec [file] did not match any files вместо этого

Проверка на решение для [1 115] файлы здесь

$: git update-index --really-refresh
<file>: needs update

Дополнительный, если Вы хотите удалить skipped или неотслеженный dir/файлы на Вашем локальном

$: git reset --hard

, Если ни одна из вышеупомянутых команд не устраняет проблему, просто необходимо отменить файл от [1 117] дерево, например:

$: git update-index --no-skip-worktree [file]

, Если Вы skipped каталог, просто пойдите сюда для детали, как пропустить/отменить рекурсивно, например:

find . -maxdepth 1 -type d \( ! -name . \) -exec bash -c "cd '{}' && pwd && git ls-files -z ${pwd} | xargs -0 git update-index --skip-worktree" \;
1
ответ дан 30 November 2019 в 12:01
поделиться
Другие вопросы по тегам:

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