Страницы

Поиск по вопросам

среда, 25 декабря 2019 г.

Обращение к git-dir через work-tree без симлинка

#git #macos #dropbox


Есть ~/work/project и ~/Dropbox/, в котором project → ~/work/project.

В самом ~/work/project папка .git вынесена в ~/work/project-git

Так вот, как без создания симлинка можно по прежнему вызывать git в ~/work/project?

Симлинк использовать нельзя так как дропбокс скопирует все содержимое. Может, ему
можно как-то сказать не делать этого?
    


Ответы

Ответ 1



адресоваться к каталогу с хранилищем (если он находится не в каталоге .git в корне проекта) можно разными способами. в вашем случае подойдёт адресация с помощью файла .git, описанная, например, в этом ответе. покажу на примере: рабочую копию (workdir) вы хотите держать в каталоге /путь/к/проекту а само хранилище (gitdir) хотите держать в каталоге /путь/к/хранилищу сделайте текущим каталог /путь/к/проекту: $ cd /путь/к/проекту инициализируйте хранилище: для программы git версии 1.7.5 или выше: $ git --separate-git-dir /путь/к/хранилищу init в каталоге /путь/к/хранилищу будет создано полноценное хранилище со всеми необходимыми файлами/каталогами: branches, config, description и т.д., а в текущем каталоге будет создан файл .git с «отсылкой» к месторасположению хранилища, такого содержания: gitdir: /путь/к/хранилищу для программы git версии ниже 1.7.5 надо будет проделать описанное в полу-ручном режиме: $ git --git-dir=/путь/к/хранилищу --work-tree=. init $ echo "gitdir: /путь/к/хранилищу" > .git для случая, если хранилище уже существует в каталоге .git в корне вашего проекта, потребуются такие действия: сделайте текущим каталог /путь/к/проекту $ cd /путь/к/проекту установите явно в конфигурации хранилища путь к рабочему каталогу: $ git config core.worktree /путь/к/проекту переместите каталог .git в нужное место с нужным именем (целевой каталог /путь/к/хранилищу не должен существовать в этот момент, иначе файлы/каталоги хранилища попадут в /путь/к/хранилищу/.git): $ mv .git /путь/к/хранилищу создайте файл .git в текущем каталоге: $ echo "gitdir: /путь/к/хранилищу" > .git

Комментариев нет:

Отправить комментарий