1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHubへのPush権限がない場合にやるべきこと

Posted at

1. 問題の発生

GitHubでリポジトリにコードをプッシュしようとすると、403 Forbidden エラーが表示される場合があります。エラーメッセージは次のようなものです。

remote: Permission to <ユーザー名>/<リポジトリ名>.git denied to <別のユーザー名>.
fatal: unable to access 'https://github.com/<ユーザー名>/<リポジトリ名>.git/': The requested URL returned error: 403

これは、リポジトリに対するプッシュ権限がない場合に発生します。以下の手順で解決できます。

2. Personal Access Token(PAT)の生成

GitHubでのパスワード認証は廃止されており、Personal Access Token(PAT)を使用して認証します。以下はPATを生成する手順です。

  1. GitHubにログインし、右上のプロフィールアイコンをクリック。
  2. Settings」→「Developer settings」を選択。
  3. Personal access tokens」→「Generate new token」をクリック。
  4. 必要なスコープ(例: repo)を選択し、トークンを生成します。
  5. トークンを生成したらコピーし、安全な場所に保存します。トークンは一度しか表示されませんので注意が必要です。

3. リモートURLの更新

次に、生成したトークンを使ってリモートURLを更新します。以下のコマンドを実行して、リモートリポジトリのURLを設定してください。

git remote set-url origin https://<GitHubユーザー名>:<PAT>@github.com/<GitHubユーザー名>/<リポジトリ名>.git

例として、GitHubユーザー名が RRR で、PATが 555 の場合は次のように実行します。

git remote set-url origin https://RRR:555/RRR/rrr.git

4. リモートにプッシュ

リモートURLを更新したら、リモートリポジトリにプッシュします。

git push origin main

5. ブランチを使って main を汚さない方法

main ブランチを直接汚したくない場合は、新しいブランチを作成して作業することを推奨します。git switch コマンドを使ってブランチを切り替えましょう。

5.1 新しいブランチの作成

次のコマンドで新しいブランチを作成し、そのブランチに切り替えます。

git switch -c <新しいブランチ名>

例:

git switch -c feature-update

-ccreate(作成) の意味で、指定したブランチが存在しない場合に新しいブランチを作成して切り替えるオプションです。


6. 変更内容をコミット

新しいブランチで作業した後、次のコマンドで変更内容をコミットします。

git add .
git commit -m "Add new feature"

7. リモートにブランチをプッシュ

新しく作成したブランチをリモートリポジトリにプッシュします。

git push origin <新しいブランチ名>

例:

git push origin feature-update

8. main へのマージ

作業が完了し、コードのレビューやテストが問題なければ、main ブランチにマージすることができます。

8.1 main ブランチに戻る

まず main ブランチに戻ります。

git switch main

8.2 マージを実行

次に、作業したブランチを main にマージします。

git merge <新しいブランチ名>

例:

git merge feature-update

8.3 最終プッシュ

最後に、main ブランチをリモートリポジトリにプッシュします。

git push origin main

まとめ

GitHubへのプッシュ権限がない場合は、以下の手順で解決できます。

Personal Access Token(PAT)を生成し、リモートリポジトリのURLを更新。
リモートリポジトリにプッシュするために適切な権限を設定。
main ブランチを直接変更したくない場合、新しいブランチを作成して作業し、そのブランチでコミットとプッシュを行う。
作業が完了したら、main ブランチにマージして最終的にリモートにプッシュ。
これにより、main ブランチを保護しながら、GitHubでの作業がスムーズに進められます。PATの使用とブランチ管理によって、権限問題を解決し、安全にコードを管理することができます。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?