Git-репозиторий с правами только для чтения - PullRequest
1 голос
/ 06 февраля 2012

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

    git clone base-url new-url-with read only access 

Я не хочу делать это с помощью команды chmod

Ответы [ 2 ]

3 голосов
/ 07 февраля 2012

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

Однако, ловушка может быть обойдена с опцией --no-verify, поэтому этот способ не так безопасен, как использование chmod для установки разрешений.

Настройка крючка довольно проста:

  1. создайте файл с именем pre-commit в .git/hooks в своем репо, который должен быть доступен только для чтения
  2. содержимое файла тривиально:
    #!/bin/bash
    exit 1
  3. Если коммит начинается сейчас, вызывается ловушка. Скрипт всегда возвращает 1 и фиксация отменяется. Отрывок из git book :

    Выход из этого скрипта с ненулевым статусом приводит к прерыванию git-commit.

Просто и легко. Хотя это можно обойти, этого должно быть достаточно, чтобы предотвратить случайные коммиты.

Если вам действительно нужна более безопасная версия, выберите chmod, как , рекомендуется , Jan Hudec .

3 голосов
/ 06 февраля 2012

Команда chmod - ваш друг, как и команда umask.

Сам Git не имеет никакого контроля доступа , потому что в операционной системе и / или протоколе доступа он уже есть, поэтому он будет избыточным. На самом деле, доступ к репозиторию git может не включать git (его можно даже извлечь или даже нажать с помощью rsync), поэтому git не может контролировать доступ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...