ひゃまだのblog

ひゃまだ(id:hymd3a)の趣味のブログ

Githubに登録の際の認証エラー対策

(2021-12-04 初稿 - )

はじめに

git cloneは利用したことがあるが、自分の稚拙なスクリプト等をgitで管理しようとは思っていなかった。しかし、自分のページを見てくれて方が、ブログ内のスクリプト等をダウンロードするのに便利かと思い登録することにした。

すぐに使えるかと思ったが、2点ほどトラブルに見舞われたので、このページではその解決策を記載する。

基本的な使い方

このページでは、githubへの登録やgitの使い方にはついては、解説しない(手抜き(^^ゞ)。

以下のサイト等を参照し、チャレンジして欲しい。

上記の記述のとおり、手順は、まずgithubのアカウントを作成して、手元のPC(以下、ローカルPC)で以下の操作を行う。

ここでは、sampleというRipositoryを作成し、hello.pyというスクリプトを登録すると仮定する。

1. mkdir sample
2. cd sample
3. git init
4. git status
On branch master
Untracked files:
 (use "git add <file>..." to include in what will be committed)
 hello.py
5. git add hello.py
6. git status
On branch master
Changes to be committed:
 (use "git restore --staged <file>..." to unstage)
 new file: hello.html
7. git commit -m "add new file"
8. git status
On branch master
nothing to commit, working tree clean
9. git remote add origin https://github.com//awesome.git
10. git push origin master

エラーは、10でpushしたときに、以下のメッセージを出して起こる。

エラーメッセージ

Username for 'https://github.com': userid
Password for 'https://userid@github.com': 
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for 'https://github.com/userid/sample.git/'

解決方法

解決方法は、以下のサイトにあった。多謝。

また、解決に必要なSSHの登録は、複数台のPCでgitを利用するためにも必要である。

実際の変更は、gitに含まれるconfigファイルを以下のとおり変更する。

cat .git/config

[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
[remote "origin"]
  url = https://github.com:userid/sample.git  # 変更前
  url = git@github.com:userid/sample.git    # 変更後
  fetch = +refs/heads/*:refs/remotes/origin/*

ファイルの追加

該当ディレクトリにファイルを追加するときにもトラブルがあった。これは、筆者が知らないだけなのかも。

手順は、以下のとおり実施するが、4.のoriginを再度リモートに登録する必要はない。

1. git add hello2.py
2. git status
On branch master
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
  new file:   hello2.py
3. git commit -m "add new file"
[master ea42f6e] add new file
 1 file changed, 16 insertions(+)
 create mode 100755 hello2.py
4. git remote add origin gttps://github/userid/rp-temphum.git   # 不要
error: remote origin already exists.    
5. git push origin master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
>Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 478 bytes | 478.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:userid/sample.git
   c7221c7..ea42f6e  master -> master

おわりに

はてなブログにコードを貼るには、Gistを利用する。Gistについては、別にアップする予定。

関連ページ