Есть ли способ заблокировать ветку в git

StackOverflow https://stackoverflow.com/questions/2471340

  •  20-09-2019
  •  | 
  •  

Вопрос

У меня есть идея заблокировать репозиторий от пользователей, втягивающих в него файлы, имея скрипт блокировки в крючке GIT Update, поскольку push может распознавать только UserId как аргументы, а не филиалы. Так что я могу заблокировать весь репо, который просто блокирует каталог.

Есть ли способ заблокировать конкретную ветку в GIT?

Или есть способ, которым крючок обновления может идентифицировать, из какой филиала пользователь нажимает и на какую филиал нажимается код?

Это было полезно?

Решение

Ветвь подталкивается к первым параметрам в Обновить крючок. Анкет Если вы хотите заблокировать ветку myfeature Для нажатия этот код (помещен в hooks/update) сделаю это:

#!/bin/sh
# lock the myfeature branch for pushing
refname="$1"

if [[ $refname == "refs/heads/myfeature" ]]
then
    echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    echo "You cannot push to myfeature! It's locked"
    echo "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
    exit 1
fi
exit 0

Другие советы

Обновление крюка, от документов:

Крюк выполняется один раз для каждого рефера, чтобы быть обновленным, и принимает три параметра:

  • Название рефери обновляется,
  • Имя старого объекта хранится в рефери,
  • и новое имя объекта, которое будет сохранено в рефери.

Так что ... да, он точно знает, какая ветвь нажимается, и может просто проверить этот параметр и сбой выхода, если не хочет, чтобы ветвь подталкивала.

И если вы хотите (разумно) сделать это до Пользователь загрузил объекты, вы можете использовать крюк с предварительным приобретением:

Этот крюк выполняется один раз для операции приема. Это не требует аргументов, но для каждого рефери для обновления он получает на стандартном вводе строку формата:

<old-value> Шрифт <new-value> Шрифт <ref-name> LF

куда <old-value> Старое имя объекта хранится в рефери, <new-value> Является ли новое имя объекта, которое нужно хранить в рефери и <ref-name> полное имя рефера.

(Это места и кормление)

В таком инструменте, как Gitolite, есть такая особенность, я верю: http://github.com/sitaramc/gitolite

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top