Я работаю в команде, а .gitignore
файл уже есть .
Я хочу добавить в .gitignore
файл больше элементов , но не хочу проверять и этот файл. Можно ли настроить собственные файлы игнорирования, которые применимы только ко мне?
Кроме того, я хочу предоставить кому-то доступ только для чтения к частному репозиторию git на нашем сервере, если я добавлю их SSH-ключ на наш сервер, они получат полный доступ, как и все остальные. Как я могу ограничить его только для чтения, без коммитов.
Ответы:
.git/info/exclude
. Смотритеgitignore(5)
.git-daemon
, на веб - сервере , или Gitosis или Gitolite.источник
.git/info/exclude
корневой каталог проекта .core.excludesfile
вы можете указать глобальный файл исключений.ln -s .git/info/exclude .personalGitignore
Затем мы можем добавить# ln -s .git/info/exclude .personalGitignore \n .personalGitignore
в .gitignoreЯ знаю, что немного опаздываю на разговор, но вы можете подумать об использовании
Как говорится в справочном документе git:
Акцент мой. Далее говорится
Так что просто имейте в виду, что вам нужно будет знать обо всех изменениях, внесенных в эти файлы.
Если вы хотите снова начать отслеживание файла, все, что вам нужно сделать, это использовать
Я надеюсь, что это поможет всем будущим читателям этого поста.
источник
Что касается ssh, вам следует подумать об использовании Gitolite (замена gitosis).
источник
Как сказал Фред Фродо, вы можете поместить свои частные правила исключения в
.git/info/exclude
репозиторий.Если вы хотите применить одни и те же правила исключения ко всем репозиториям на вашем компьютере, вы можете добавить следующее в
.gitconfig
файл в вашем каталоге пользователя.Затем добавьте свои шаблоны исключения в
~/.gitexclude
.источник
Возможно, вас заинтересует ловушка обновления, которую написал Юнио и которую Карл улучшил. Поместите приведенный ниже код
$GIT_DIR/hooks/update
и не забудьте включить его с помощьюchmod +x
.После этого вы даете определенным пользователям или группам возможность вносить изменения в репозиторий. Все, кто может его видеть, имеют доступ только для чтения.
Если у этого человека еще нет доступа к хосту, на котором находится ваш репозиторий, возможно, у этого человека должен быть только
git-shell
доступ, а не неограниченный доступ. Создайте специального пользователя git и в~git/.ssh/authorized_keys
добавьте SSH-ключ постороннего в следующую форму. Обратите внимание, что ключ должен быть в одной длинной строке, но я заключил его ниже, чтобы облегчить представление.В зависимости от вашей локальной настройки вам может потребоваться изменить путь к файлу
git-shell
. Помните, чтоsshd
очень параноидально относится к разрешениям.ssh
каталога, поэтому отключите его биты групповой записи и все файлы под ним.Включение всех пользователей через пользователя git означает, что вы должны уметь различать людей, и это цель
myorg_git_user
переменной среды. Вместо того, чтобы полагаться на безусловныйusername=$(id -u -n)
, настройте ловушку обновления, чтобы использовать ее:При такой настройке ваш друг с доступом только для чтения будет клонировать с помощью команды, подобной приведенной ниже. Конкретный путь будет зависеть от ваших настроек. Чтобы хороший путь заработал, либо переместите свой репозиторий в домашний каталог пользователя git, либо создайте символическую ссылку, указывающую на него.
но не сможет делать обновления.
Вы сказали, что работаете в командной среде, поэтому я предполагаю, что ваш центральный репозиторий был создан с этой
--shared
опцией. (Смcore.sharedRepository
вgit config
документации и--shared
вgit init
документации .) Убедитесь , что новый пользователь мерзавца является членом группы систем , которая дает всем вам доступ к вашему центральному хранилищу.источник