Я работаю над некоторым серверным программным обеспечением, чтобы выполнить слияние. Используя git worktree
, можно проверить данную ветку на голое репо и объединить в нее другую ветку. Это очень быстро, даже с большими репозиториями.
Единственным исключением является слияние с master
. Когда я делаю git worktree add /tmp/path/to/worktree master
, я получаю сообщение об ошибке:
фатальный: «мастер» уже извлечен в «/path/to/bare/repo»
Но это явно не так, git worktree list
дает:
/путь/к/голым/репо (голым)
... и, конечно же, по этому пути нет рабочего дерева, только обычные файлы репо, которые вы ожидаете.
ОБНОВЛЕНИЕ: я связался с сопровождающими git, и они согласились, что это может быть ошибка. У меня есть предварительный патч от них для тестирования. Кроме того, мне удалось воспроизвести желаемое поведение без патча.
На данный момент я не совсем уверен, что такое граничное условие или основная причина, и может быть исправление, ожидаемое от git.
-b
, чтобы создать ветку, чтобы это работало. - person Mike Gorski   schedule 06.10.2016