Controlo de acesso do utilizador no git

Tenho uma pergunta simples. Estamos usando Bitbucket como o provedor de git. Suponha que eu sou o gerente de uma equipe de desenvolvimento.

Quero ser a única pessoa que pode fundir o código para o ramo mestre.
Outros membros da equipe podem checkout master branch e criar novos branches, mas eles não podem fundir código para master branch. Como posso fazer isto em Git?

 4
git
Author: Kofi Black, 2018-04-27

2 answers

Segundo a minha experiência, a melhor maneira de fazer isso é permitir que a equipe apenas bifurque o repositório, do que quando uma funcionalidade é lida eles submetem um pedido de pull(Github) ou um pedido de merge(Bitbucket).

 3
Author: desoares, 2018-04-27 16:02:51
O que está a pedir é muito simples de conseguir, mas depende da sua forma de trabalhar.

Se estiver a usar o Servidor git, pode "proteger" o ramo desejado de ser unido.


Proteger os ramos sob o github

enter image description here


Proteger os ramos da bitbucket sunder

Aqui você terá que escolher evitar todas as mudanças e você mesmo como permitido utilizador

enter image description here enter image description here


Ganchos Git

Se o conseguir, será um simples gancho de pré-recepção de novo depende do seu servidor de git

Por exemplo:

#!/bin/sh

# Extract the desired information from the log message
# You can also use the information passed out by the central repo if its available

# %ae = Extract the user email from the last commit (author email)
USER_EMAIL=$(git log -1 --format=format:%ae HEAD)

# %an = Extract the username from the last commit (author name)
USER_NAME=$(git log -1 --format=format:%an HEAD)

# or use those values if you have them:
# $USER, $GIT_AUTHOR_NAME, $GIT_AUTHOR_EMAIL

if [ "$1" != refs/heads/master ] && [ CHECK_FOR_USER_NAME_OR_EMAIL ] {
    echo "ERROR:  you are not allowed to update master" >&2
    exit 1
}
 2
Author: CodeWizard, 2018-04-27 16:23:22