#git
Вопрос:
Как бы я ни старался, я не могу git
отследить имя своего файла foo/.git/bar
.
Что я пробовал
git add foo # no result
git add foo/.git # no result
git add foo/.git/bar # no result
git add --force foo/.git/bar # no result
cd foo amp;amp; git add .git # no result
Я понимаю, что обычно вы не хотели бы отслеживать такой файл. Я думаю, что мой прецедент оправдывает это, хотя.
Мой вариант использования
У меня есть файл с именем foo/.git/hooks/pre-push
в моем репозитории git. Я буду использовать GNU stow для установки этого pre-push
файла в репозиторий git где-нибудь еще на моем диске. Чтобы было ясно, папка foo
не является репозиторием git; это просто папка с именем foo
, которая содержит папку с именем .git
и файл .git/hooks/pre-push
. Я хочу отследить это.
Как этого можно добиться?
Комментарии:
1.При обычном способе работы с Git каталог с именем-
.git
это репозиторий, расположенный в рабочем каталоге, который содержит файлы, извлеченные из репозитория для редактирования. Почему у вас есть каталог с именем.git
, которое не является хранилищем, и где находится хранилище, если его нет.git
?2. Да @the_previ, я пытался поставить git-крючки и файлы конфигурации git (
.git/hooks/...
и.git/config
) под контроль версий. План состоял в том, чтобы использовать GNU stow для установки крючков и конфигурационного файла.
Ответ №1:
Ты не можешь.
Серьезно, ты не можешь. Git запрещает вам иметь файл с именем .git
в любом сочетании верхнего или нижнего регистра или любой файл с любым компонентом (частью между косыми чертами), имя .git
которого указано в любом сочетании верхнего или нижнего регистра.
Назовите файл как-нибудь иначе.
Комментарии:
1. Сначала я прочитал первое предложение как «Бог запрещает вам…» Спасибо за ответ 🙂
Ответ №2:
Ты не можешь, как было сказано. Просто чтобы расширить предыдущий ответ — если вы хотите сделать это для крючков, что вы можете сделать, это просто <repo>/hooks
включить крючки и написать сценарий или Makefile
настроить среду разработчика, которая разместит их на нужном месте. Если вы задокументируете это в README.md
или CONTRIBUTING.md
и скажете людям запустить скрипт первым делом, он будет работать довольно хорошо, а также будет работать для других git
целей .
Также обратите внимание, что не рекомендуется доверять крючкам на компьютере разработчика, даже если разработчик забывает установить крючки, которые, например, проверяют код, добавляют подпись и т. Д. Удаленный сервер CI или VCS должен перехватывать эти плохие запросы на вытягивание и отклонять их.