GitLabで新規リポジトリを作ってpushしたら、You don't have permission error: failed to push some refs

Git

GitLabで新規にリポジトリを作って、初めてpushしたら

remote: GitLab: You don't have permission

となってしまいました。

これは何でしょう?

スポンサーリンク
スポンサーリンク

GitLabで新規にリポジトリを作成

GitLabは、便利なGitのリポジトリ管理インターフェースです。

GitLabのインストール方法は以下の通りです。

CentOS 7にGitHubライクなGitLabを2分でインストールしてみた
GitのWebインターフェースを探している中で、GitWeb、Ginatraを試したのですが、イマイチでした。 ...

GitLabで新しいリポジトリを作成します。

その後、GitLabの指示通りに最初のコミットとプッシュを、Git Bash(MSysgit)というGitのコマンドラインから行います。

すると、以下のようにエラーが発生します。

remote: GitLab: You don't have permission
To git@aaa.bbb.ccc:root/xxx.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@aaa.bbb.ccc:root/xxx.git'

git did not exit cleanly (exit code 1)

何じゃこれ?

GitLab: You don't have permission を解決する方法

You don't have permission という事なので単純に権限がないんだろうか?

GitLabの権限は以下にまとめています。

GitLabのユーザー権限・グループ権限
GitLabではプロジェクトごとに参加するユーザーには、 という5個のユーザー権限を設定できます。 ...

そういえば、Developer権限ではタグを作ることができるのに、削除することができません。

GitLabでDeveloperならタグ(Tag)を追加できるが、削除できない
普段、Gitのリポジトリ管理としてGitLabを使っています。GitLabについては以下をご覧ください。 ...

試しにGitLabの権限設定で

Developerではなくて、Masterに変更してみると。。。

。。。

push 成功しました!

いや、待てよ。

でも、おかしいだろ。

master で運用する訳にはいかないだろ。

という訳で更に調べてみました。

GitLab 7.4 からデフォルトで、デベロッパー(Developer) の push は 保護 (protect)

どうやら、

GitLab 7.4 からデフォルトで、デベロッパー(Developer) の push は 保護 (protect) 、つまり不可となっているようです。

なんじゃそりゃ。

この設定を変更するには次のようにします。

GitLabでプロジェクトを選択して

Settings ⇒ Protected branches にて

"Allow developers to push" を有効化(enable) します。

なんか、よくわからない「保護」設定。

Gitについてのおすすめの本

↓Gitについてのおすすめの本はコチラ

Git