Символическая ссылка на крючок в git
Я написал свой собственный пользовательский крюк после слияния, теперь я добавил каталог "hooks" в свою основную папку проекта (поскольку git не отслеживает изменения .git / hooks), где-то я читал, что могу сделать символическую ссылку с крючков .git / hooks поэтому мне не нужно копировать файл из одной папки в другую каждый раз, когда кто-то меняет его, поэтому я попытался:
ln -s -f hooks/post-merge .git/hooks/post-merge
но это не работает, любые идеи, почему? "Л. Н. Крюков/после слияния .git / hooks / post-merge " отлично работает, но делает жесткий ссылка такая же, как copyin я думаю....
5 ответов:
вы просто использовали неправильный путь, он должен быть:
ln -s -f ../../hooks/post-merge .git/hooks/post-merge
изменение каталога представлены ссылки
cd /path/to/project-repo/.git/hooks ln -s -f ../../hooks/post-merge ./post-merge
хотя вы можете использовать символические ссылки, вы также можете изменить папку hooks для вашего проекта в настройках git с помощью:
git config core.hooksPath hooks/
который является локальным по умолчанию, поэтому он не разрушит крючки git для других ваших проектов. Он работает для всех крючков в этом репозитории, поэтому он особенно полезен, если у вас есть более одного крючка.
Если у вас уже есть крючки в
.git/hooks/
что вы не хотите поделиться с вашей командой вы можете добавить их в крючки/ и добавить.gitignore
так они не общий.
вычисление пути выполняется относительно символьной ссылки. Давайте разберемся на примере,
ln -s path/to/file symlink/file
здесь путь к файлу должен фактически быть относительным путем от пути символической ссылки.
Система вычисляет путь к файлу, какsymlink/path/path/to/file
Приведенная выше команда должна быть переписана какln -s ../path/to/file symlink/path
Структура папок является,/ code
------ символическую ссылку/файл
------ путь/к / файлу