git-new-workdir: фиксация в рабочем дереве A вызывает фиктивные изменения в дереве B

я используюgit-new-workdir иметь два рабочих дерева для одного репозитория git. Обычно это работает очень хорошо, но я получаю забавное поведение после фиксации чего-либо, если одна и та же ветка отмечена в обоих рабочих деревьях:

I start with both working trees clean and on "master". I commit something in working tree A.

Результат:

"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, реальные незафиксированные изменения смешиваются с поддельными изменениями из совершить, и, кажется, нет простого способа распутать их. следовательно вопрос.

Ответы на вопрос(2)

Ваш ответ на вопрос