git-new-workdir: фиксация в рабочем дереве A вызывает фиктивные изменения в дереве B
я используюgit-new-workdir
иметь два рабочих дерева для одного репозитория git. Обычно это работает очень хорошо, но я получаю забавное поведение после фиксации чего-либо, если одна и та же ветка отмечена в обоих рабочих деревьях:
Результат:
"git status" in working tree A shows "clean" (as expected) "git status" in working tree B suddenly shows "Changes to be committed"Показанные изменения являются обратными коммиту, который я только что сделал в А. Для Например, если коммит в A добавил строку, то «Изменения будут зафиксированы» в B показывают, что эта строка была удалена.
Что здесь происходит? Это известное ограничение git-new-workdir? Есть ли способ избежать этой проблемы? Или я должен просто избегать регистрации в то время как одна и та же ветка проверена в обоих экземплярах?
Мне также было бы интересно понять, что здесь происходит внутренне (я мало знаю о внутренностях git).
Note:
Я обнаружил, что проблему легко решить, просто запустив
git reset--hard
в B, если B не имел незафиксированных изменений до фиксации в A.
Тем не менее, если я фиксирую в A, пока есть незафиксированные изменения в B, реальные незафиксированные изменения смешиваются с поддельными изменениями из совершить, и, кажется, нет простого способа распутать их. следовательно вопрос.