LoginSignup
8
7

More than 5 years have passed since last update.

githubにpushする時に勝手に別ユーザでpushされる現象の対処法

Posted at

現象

 社内github勉強会でwindowsの共有マシンで複数人(複数人分のgithubアカウントを用いて)が同一リポジトリに対してプッシュした際に、gitのキャッシュ?のせいで意図しないユーザ(対象のリモートリポジトリではないユーザ)でプッシュしようとしてエラーが発生する現象の対処法。なお、一度gitクライアントを削除して、再インストールしても改善されませんでした
gitを詳しいわけではないので、もし原因や別の対処法があれば教えて頂けると幸いです

前提条件

  • 作業はすべて同一のWindowsマシンで実施する
  • 同一のリモートリポジトリをforkしたリポジトリを操作する
  • 複数人(仮にuser1とuser2とする)である
  • 仮にリモートリポジトリ名をdemo-repoとする
  • すべてのユーザは二段階認証を導入していない(ユーザ名/パスワードで認証)

手順

1. user1がforkしたdemo-repoをローカルにクローン

config(user1)
 [remote "origin"]
  url = https://github.com/user1/demo-repo.git

2. user1がdemo-repoに変更を加え、コミットする
3. user1のリモートリポジトリにプッシュする(成功する
4. user2がforkしたdemo-repoをローカルにクローン

config(user2)
[remote "origin"]
 url = https://github.com/user2/demo-repo.git

5. user2がdemo-repoに変更を加え、コミットする
6. user2のリモートリポジトリにプッシュする(失敗する

エラー内容
remote: Permission to user2/demo-repo.git denied to user1.
fatal: unable to access 'https://github.com/user1/demo-repo.git/': The requested URL returned error: 403

user2のdemo-repoにpushしようとしたところなぜかuser1で勝手にpushする
しかも、githubへの認証ダイアログが表示されない

対処法

git configのremote urlにユーザ/パスワードを付与することで解決できます
共有マシンではユーザ/パスワードをテキストで残すのはちょっと気が引けますが、一時利用であれば作業が完了したら削除すること

config

# ユーザ名:パスワード(またはアクセストークン)@をgithub.com前に付与する
# なお、パスワードに「@」が含まれている場合は、「%40」に置きかえってください
[remote "origin"]
 url = https://username:password@github.com/xxxxxx/demo-repo.git

以上

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