githubを使い始めたのですが、仕様が変わっていたりエラーメッセージが表示されたりしたので誰でも使えるように情報を残しておきます。
普通にやってたら以下のようなメッセージが表示されpushやpullができない状態となりました。
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
githubの認証
gitの本とか見ると、「メールアドレス」「ユーザー名」「パスワード」での認証となっていましたが、2021/8/13にパスワード認証がサポートされなくなった模様です。
そのため、パスワード認証と思い込んでいると認証エラーとなりgithubが使えない状態となります。
gitコマンドやVSCode経由で使う場合は以下のようにトークンを取得しましょう
VSCodeのgithubリポジトリ管理
VSCodeを使用すると、githubの操作をGUIで行うことができますが、1点注意があります。
それはローカルのgitリポジトリを1つしか扱うことができないということです。
これはgit cloneをした場合、サブディレクトリが作成されますがそのままの状態でgit cloneのサブディレクトリのファイルを変更してもVSCode側で変更を認識してくれないという問題になります。
githubリポジトリを用意する
やり方は色々あると思いますが、私はgit cloneから始めることをお勧めします。
そうすることにより、初期セットアップも多少省けるのでお勧めです。
git cloneするときはリポジトリが空だとエラーになるのでREADMEとか作成しておいてください。
また、git cloneするとリポジトリ名がディレクトリ名になるのでリポジトリ名気を付けて決めましょう。
git cloneする
githubのリポジトリを複製します。
git clone https://github.com/<ユーザー名>/<リポジトリ名>.git
ユーザー名とパスワードを入力します。
パスワードはgithubのユーザーパスワードではなく、作成したトークンを入力する必要があります。
$ git clone https://github.com/<ユーザー名>/<リポジトリ名>.git
Cloning into 'test'...
Username for 'https://github.com': <ユーザー名>
Password for 'https://<ユーザー名>@github.com':<トークン>
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 10 (delta 2), reused 2 (delta 0), pack-reused 0
Unpacking objects: 100% (10/10), 2.34 KiB | 218.00 KiB/s, done.
$
git cloneすると、リポジトリのサブディレクトリ内に「.git」ディレクトリが作成されます。
.git/configファイルが自動的に作成されています。リポジトリ設定などが行われている状態になってます。
$ more config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = https://github.com/<ユーザー名>/<リポジトリ名>.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main
$
gitクライアントセットアップ
git cloneで作成されたディレクトリに移動して実行します。
まず、ユーザー名、メールアドレスを指定します。
あと、push/pullを実行する際にトークンを入力するのが面倒なので設定しておきます。
$ git config --global user.email "<メールアドレス>"
$ git config --global user.name "<ユーザー名>"
$ git config --global url."https://<トークン>:x-oauth-basic@github.com/".insteadOf "https://github.com/"
これで設定完了です。
VSCodeでログインしてワークスペースをgit cloneを行ったサブディレクトリに指定します。
この状態でファイルを作成/変更しgitの変更が認識されることとgithubにpushできることを確認してください。