0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

メモ: GitHubへの commit と push で使うアカウントが違う? (Windows)

Posted at

概要

GitHub のアカウントを複数使っているのだけど、git commitgit push で使われるアカウントが違う!
ので修正します。

Windows の場合の記事です。Macの場合は資格情報の消し方が異なります。https://support.apple.com/ja-jp/guide/keychain-access/kyca2423/mac からキーチェーンアクセスを削除できます。

ひとつのリポジトリだけに適用される設定です。全体に適用したい場合は他の記事を探してください...。

どんな動作?

VSCode で

You don't have permission to push to (URL). Do you want to fork it instead?

のような通知が出ました。

git push すると Git ではこんなエラー。

remote: Permission to [使いたいアカウント]/Repo.git denied to [使いたくないアカウント].
fatal: unable to access 'https://github.com/[使いたいアカウント]/Repo.git/': The requested URL returned error: 403

push する際のアカウントが間違っていました。が、git config user.email に設定されていたのは push する際に使いたいアカウントであり、PGP 鍵も同じアカウントのものを要求されました。

commit するほうのIDで push もしたい

commit するほうのIDを使いたいので、git config -l で確認できる user.nameuser.email が正しい場合です。

すること!

  1. Windows に残っている GitHub の資格情報を消します
  2. .git/config[remote "..."]url を書き換えます
  3. git push などを行い、資格情報を入れ直します

1. Windows に残っている資格情報の削除

コントロールパネルを開く (Win+R -> Control と入力 -> Enter)
右上の表示が「カテゴリ」なら、「大きいアイコン」にします
image.png
ユーザーアカウント をクリックします。

左側に 資格情報の管理 があるのでクリックします。
Windows 資格情報 を押して、
git:https://[アカウント]@github.com を見つけてすべて削除します。

2. .git/config を書き換える

push できていないリポジトリのフォルダに移動すると、隠しフォルダで .git というフォルダがあるので、その中の config ファイルを開きます。

[remote "[remote名]"]
url = https://github.com/[アカウント]/[リポジトリの名前].git

のようになっていたら、その箇所を以下のように編集します。

[remote "[remote名]"]
url = https://[使いたいアカウント]@github.com/[使いたいアカウント]/[リポジトリの名前].git

[アカウント]@github.com の形式にすればよいです。

例えば

[remote "main"]
url = https://icy9ptcl@github.com/icy9ptcl/GreenBreeze-Light-Theme.git

3. push かなにかしよう

git push

を行うと、再度認証情報を要求されます。Personal Access Token をパスワードの代わりに入力しましょう。

※ Visual Studio Code であればパスワードを入力と表示されますが、Personal Access Token を代わりに入力してください。
Personal Access Token の作り方は以下です。
https://docs.github.com/ja/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token

push するほうのIDで commit したい?

この場合

git config --local user.name (使いたいアカウントの表示名)
git config --local user.email (使いたいメールアドレス)

をすると、そのとき開いているフォルダが所属するリポジトリ に対して、commit 先のアカウントが変更されます。
※ PGP鍵で認証している場合 user.signingkey の変更も忘れずに。

もう commit しちゃった

念のため commit のログを見てみましょう。直前のコミットは以下で確認できます。

git log -1 --pretty=full

※ -1 を -2 にすると2つ前までのコミットが確認できます。

Author と Commit が出るはずです。

間違った commit が1回だけの場合

直前の1つの commit は amend = やり直す(修正) することができます。

まずは commit した人(Committer)を変えます。リポジトリのcommit先を変更してから、

git config --local user.name (使いたいアカウントの表示名)
git config --local user.email (使いたいメールアドレス)

直前の Committer を変更します。

git commit --amend

Author (作成者) を変更します。このとき --author=名前 <メールアドレス> のように指定します。

git commit --amend --author="正しいアカウントの表示名 <メールアドレス>"

修正されたか git log --pretty=full で確認するのをお忘れなく!

commit が複数回にわたる場合

複数回間違ったアカウントで commit してしまった場合は、

以上の記事を参考にしてください (私ではまだうまく解釈できませんでした...。)

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?