Вопрос по github, branch, git – Как защитить «мастера» в github?

42

У меня есть несколько участников в моем проекте github. Я хочу разрешить только одному из них "нажимать" освоить. И этот парень не я (владелец хранилища). Возможно ли это сделать?

Эта функция не поддерживается github, но если вы ищете похожие решения: репозитории Assembla поддерживают это:blog.assembla.com/assemblablog/tabid/12618/bid/96330/…  DIY - самодостаточный git:git-scm.com/book/ch7-4.html  Сделай сам - хостинг Mercurial:mercurial.selenic.com/wiki/AclExtension Titas
Сентябрь 2015: похоже, эта функция появится в GitHub: смотритеmy answer below VonC
Смотрите такжеstackoverflow.com/a/5097437/6309 VonC
Это частный проект? Если это не так, они не обязательно должны быть соавторами - они могут разветвляться и использовать только запросы извлечения (что обеспечивает уровень проверки псевдокода для объединения изменений) Daenyth
возможный дубликатA way to restrict Git branch access? Ciro Santilli 新疆改造中心 六四事件 法轮功

Ваш Ответ

4   ответа
34

Тогда, когда этот вопрос был опубликован, GitHub не позволял вам указывать права доступа на уровне филиала. Вы можете сделать это только на уровне хранилища. Так что то, что вы запрашиваете, было невозможно.

Если вы хотите обойти это ограничение, я лично вижу два варианта:

  • you could use some kind of commit hooks, etc. to at least inform someone that something wrong happened
  • If you really need this tight control, you could use two repositories, one only holding your "master" branch. You would then need to make sure that only your "guy" gets write access to the master repository

Я думаю, что это легче решить с какой-то организацией. В моей команде мы никогда ничего не передаем непосредственно мастеру, а вместо этого всегда создаем запросы на извлечение. Это гарантирует, что, по крайней мере, кто-то взглянет, прежде чем код будет объединен, и вы также сможете определить политику, в которой будет только ваш "парень". разрешено объединять запросы извлечения.

Update

GitHub теперь анонсирован что они развернут новую функцию под названием защищенные ветки. Эта функция присутствовала в других дистрибутивах git, таких как Atlassian Stash, в течение многих лет. Это позволит вам защитить некоторые ветви от толчков. Однако это все еще не позволяет полную защиту отдельных ветвей на основе ACL. Поэтому вы можете проверить эту функцию на тот случай, если вы не хотите полагаться на организационное решение, как описано выше.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit ExceededGitlab.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded yegor256
9

Замечания:Защищенные филиалы и необходимые проверки статуса (3 сентября 2015 г.) позволит вам защитить ветку

  • against forced pushed
  • against deletion
  • against merged changes until required status checks pass

https://cloud.githubusercontent.com/assets/25792/9596474/27db3ce6-502a-11e5-9b19-5b47a8addc65.png


С марта 2016 года, какпрокомментировал отшлифовальная машинка ниже у вас естьПользовательские и командные ограничения

Sometimes merges to a protected branch are best left to a release manager or a team of people responsible for the stability of that particular branch. Organizations can now specify which members and teams are able to push to a protected branch.

https://cloud.githubusercontent.com/assets/4719/14140705/ed98abac-f67a-11e5-951e-b48c842fb77f.png

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededgithub.com/blog/2137-protected-branches-improvementsError: User Rate Limit Exceeded
3

Это именно то, для чего было разработано раздвоение. У вас будет основной защищенный репозиторий, и вы разрешите чтение для этого репозитория всем участникам. Те, кто вносит свой вклад, разветвляют репо и помещают свои изменения в свои личные копии основного репо. Когда они будут готовы ввести код в основной репозиторий, они отправят запрос на извлечение в основной репозиторий. В этом случае владельцы основного проекта могут выполнить запрос на извлечение.

0

Теперь мы можем использовать & quot; CODEOWNERS & quot; файл, требующий проверки от владельцев кода для подтверждения запроса на получение. Мы можем установить различные разрешения в зависимости от их учетной записи GitHub.

увидетьВот  а такжеВот

Похожие вопросы