質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

Q&A

3回答

80614閲覧

githubの権限を確認する方法

renren643

総合スコア279

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

0グッド

8クリップ

投稿2018/04/06 09:56

github organizetionで共同開発しようとしているんですが、git push origin master したら、
permission denied と言われます。

権限はどこから確認したらいいのでしょうか?

調べたところ権限が関係あるようなのですが、team内のメンバーの権限はどのように確認し、どのように変更したらいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ふーむ、ちょっと情報が足りないみたいだから整理していこうね。
順序立てて説明していくから、知ってれば斜め読みでざっと読み飛ばして、
知らなかったら少し分量が多いけど読み進めてみてね。


権限はどこから確認したらいいのでしょうか?

先に質問に答えよう。

GitHubのプロジェクトは、誰でもソースコードをcloneやダウンロードは可能。
しかし、権限を持った人しか更新が出来ない仕組みになってるの。
そうすることによってオープンソースコードなのに、悪意の第三者のウィルスが勝手に混入しないような仕組みになってるんだ。

プロジェクトメンバーになるには、そのプロジェクト自体にあれこれ出来る上位の権限持ちでしか何も出来ない。
管理者アカウントは他のアカウントに向かってジョイン申請が行える。
ジョイン申請を受け取ったユーザーには「ジョインしますか?」というメール通知が届くから、
メールの指示に従ってOKを返すと晴れてプロジェクトのメンバーになれるよ。

例として私のプロジェクトをちょっと見てみようか。
https://github.com/miyabisun/conoha-cli

注目するべきは「Clone or download」ボタンの上の列にある「1 contributer」って記述。
このリンクをクリックしてみよう。
プロジェクト参画メンバーがずらずらと表示されるので、貴方の名前があれば権限は既にある状態。

もし既にあるのにコミット出来ないならば、
GitとGitHubの相関が分かってないと思うから次の章に進もう!


GitとGitHubアカウントの相関に関して

そもそもGitというバージョン管理ツールとGitHubは直接的な相関はないんだ。
GitHubはGitの「バージョン管理情報のファイルの集合体」を預かってくれるサービスで、
BitbucketやGitLabみたいな類似のサービスが沢山あるんだよ。

貴方のパソコンにGitをインストールしたからといって、
勝手にGitHubの貴方のアカウントに紐付いたりはしないってわけだね。

だから例として、こんな感じで他人のプロジェクトをクローンしても…
git clone https://github.com/miyabisun/conoha-cli
これはアカウント情報が何も載っていない…
つまりゲストアカウントで持ってきたプロジェクトってわけだね。

こうして取ってきたプロジェクトは、例えプロジェクトを作った私であっても更新出来ない。
なぜなら匿名のゲストアカウントで入ってるからね。


GitHubのアカウントとGitを紐付ける

SSHというパソコンの遠隔操作の仕組みは知っているかな?

実はGitHubにはSSHでログインすることが出来るんだ!
より正確に言えばSSHの堅牢な認証システムの部分だけを利用して、
GitHubのアカウントと自分自身を紐付ける事が出来るんだ。

しかし、GitHubにSSHでログインする場合、公開鍵暗号方式を採用する必要がある。
お前らのSSH Keysの作り方は間違っている - Qiita
上記のような記事を参考に秘密鍵と公開鍵を用意しておこう。

公開鍵の準備が出来たらGitHubにログインして設定しよう。
アカウントの設定画面へ遷移出来たら、左のメニューにある「SSH and GPG keys」を選択。
「New SSH key」のボタンをクリックして「id_rsa.pub」ファイルをアップロードしてしまおう。

「Clone or download」のボタンをクリックすると、
git cloneコマンドで使うURLが払い出されるんだけど、
右上にある「Use SSH」リンクをクリックすればgit@github.com:miyabisun/conoha-cli.git等という風にURLがSSH用のものに変化する。

これをコピペしてきて…こんな感じに入力する。
git clone git@github.com:miyabisun/conoha-cli.git
これで私はSSH認証によりGitHubのアカウントの権限を持ってこのプロジェクトをクローンしてきましたよという宣言になる。

この状態でクローンしてきたプロジェクトの参画メンバ(Contributor)に貴方のアカウントが含まれているのなら、
特に気にしなくても自由にgit pushコマンドを使ってGitHub上のブランチを更新することが出来るはずだよ。


既にプロジェクト作ってる場合は?

うーん、既にgit pushが弾かれて困ってる所まで話が進んでるんだよね。
だからこの章が必要に思えるね…方法は2通りあるよ。

  • git remoteコマンドで再設定
  • .git/configファイルを直接編集する

コマンドで再設定する場合は下記の記事が役に立ちそう。
gitのremote urlを変更する(レポジトリ移行時) - Qiita
ファイルの編集は…まぁ開けばわかると思うよ。


いや、それでも更新出来ないんだが?

なるほどgit push origin masterね……
だとすると、そのプロジェクトはmasterブランチを上書き出来ないようにロックしている可能性があるよ。

例えばGit-Flowというブランチ管理戦略がある。
Git-Flowの思想に乗っかるなら、本番環境のファイルは常にmasterブランチのファイルと一致していなければならない。
つまり、一作業者が勝手に更新することは許されないわけだね。
それを実現する為に、GitHubでは特定のブランチへのpush操作を禁止することが可能。

じゃあどうするの?というと、
適当なブランチ名で機能を作ってpush、GitHubの管理画面でmasterに取り込んでくれませんか?という趣旨のスレッドを建てる。
この一連の流れをプルリクエストと呼ぶんだ。

これで様々な人のレビューを受けて、
意思決定者達が「よし、このコードで完璧だ、採用!」という事でプルリクエストの画面で「マージ」ボタンをクリックすると晴れてmasterブランチに修正内容が取り込まれる。

まぁ、プロジェクトの管理手法はGit-Flowだけじゃなくて色々ある。
どうすれば良いかの手順はプロジェクトリーダーやメンバーに相談してみて。


はい、こんな感じでどうかな?
一通り盛り込んで見たから多分これで大丈夫だと思うよ。

投稿2018/04/06 17:10

miyabi-sun

総合スコア21158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

I love learning new things and so I appreciate your website for the value you bring, hope you have a great time with pizza tower

投稿2023/05/31 04:40

fondemi

総合スコア20

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

read 権限があって write 権限が無いんだと思います(自分も同様のケースに遭遇しました)
どのレベルの権限が与えられているかの表示は見つけられませんでしたが、↓ の表で該当する操作が可能かどうかで write 権限が無いことを確認しました。
https://help.github.com/articles/repository-permission-levels-for-an-organization/
(具体的にはプルリクエストのマージ、他メンバの発言に対しての編集アクション、などのためのUI部品が表示さ
れていない等々)

自分は招待側にお願いして権限を追加して貰って解決しましたので、具体的な変更操作については知らないです…

投稿2018/12/09 11:15

編集2018/12/09 11:19
phyllite

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問