Подтвердить что ты не робот

Git подмодуль абсолютный путь пути работы

Это мой файл подмодуля redmine_dashboard:

Файл конфигурации субмодуля:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    worktree = /Users/daniel/redmine/vendor/plugins/redmine_dashboard
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = [email protected]:ebc/redmine_dashboard.git
[branch "master"]
    remote = origin
    merge = refs/heads/master
[gui]
    wmstate = normal
    geometry = 841x391+-8+43 187 177

Mac

worktree = /Users/daniel/redmine/vendor/plugins/redmine_dashboard

Linux

worktree = /home/daniel/redmine/vendor/plugins/redmine_dashboard

Проблема

Можно ли изменить этот абсолютный путь для родственника? Что-то вроде:

worktree = ../../vendor/plugins/redmine_dashboard
4b9b3361

Ответ 1

Да, вы должны иметь возможность обновлять конфигурационный файл с помощью относительного пути. Вы также должны обновить директорию worktree в файле .git в корне подмодуля, чтобы быть относительным путем назад к этому модулю.

Я считаю, что это исправлено в (по крайней мере) самой последней версии git (1.7.10.1). Кажется, я не могу найти журнал изменений, поэтому я понятия не имею, когда он был исправлен. Я смог git устранить проблему, удалив как подмодуль, так и папку в папке .git/modules, а затем переделав git submodule init и git submodule update.

Ответ 2

Обратите внимание, что в справочной странице git config говорится:

core.worktree

Задайте путь к корню дерева работ. Это может быть переопределено переменной среды GIT_WORK_TREE и параметром командной строки --work-tree.
Это может быть абсолютный путь или относительный путь к каталогу .git, заданный --git-dir или GIT_DIR, или автоматически обнаруженный.
Если указаны --git-dir или GIT_DIR, но не указано ни одного из --work-tree, GIT_WORK_TREE и core.worktree, текущий рабочий каталог рассматривается как корень дерева работ.

Ответ 3

Почему вы устанавливаете worktree вообще? По умолчанию дерево работы - это то, где вы запускаете свои команды, где находится каталог .git. См. этот вопрос для получения дополнительной информации.