- 投稿日:2021-01-28T23:07:25+09:00
GitHubがパスワード認証を廃止するらしいので
GitHubでは2021年8月13日にパスワード認証が廃止されるそうです。
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/という訳で、代わりに使用するであろう個人アクセストークンとsshの設定方法をメモします。
個人アクセストークン
以下のドキュメントを参考に取得します。
https://docs.github.com/ja/github/authenticating-to-github/creating-a-personal-access-token取得手順
GitHubにログインした状態で、以下を実施します。
・設定画面( https://github.com/settings/tokens )を開く
・[Developer settings]をクリック
・noteにトークンのわかりやすい名前を記入
・権限を設定
・[Generate token] をクリック
・トークンをコピー (ページを離れると参照不可になる)
・パスワードの代わりに使用する※トークンを使用してコマンドラインからリポジトリにアクセスするには、権限設定で[repo] を選択します。
※セキュリティ上の理由から、 GitHub は過去 1 年間使用されていない個人アクセストークンを自動的に削除します。使用例
リポジトリのURLはリポジトリ画面の[Code]-[HTTPS]から取得できます。
使用例$ git clone https://github.com/username/repository.git Cloning into 'repository'... Username for 'https://github.com': username Password for 'https://username@github.com': ここで取得した個人アクセストークンを入力する※個人アクセストークンは HTTPS Git 操作だけにしか使用できません。
SSH
以下のドキュメントを参考に設定します。
https://docs.github.com/ja/github/authenticating-to-github/connecting-to-github-with-ssh設定手順
SSHキーを生成
以下のコマンドでSSHキーを生成します。
WindowsはGitBashで生成できます。SSHキー生成$ ssh-keygen -t ed25519 # 全てデフォルトでエンター Generating public/private ed25519 key pair. Enter file in which to save the key (/home/username/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: $ ls ~/.ssh # id_ed25519 id_ed25519.pubが生成される。 authorized_keys id_ed25519 id_ed25519.pubGitHubアカウントへの新しいSSHキーの追加
GitHubにログインした状態で、以下を実施します。
・設定画面( https://github.com/settings/ssh )を開く
・[New SSH key]をクリック
・Titleを記入
・Keyにid_ed25519.pubの内容を記入
・[Add SSH Key]をクリック使用例
リポジトリのURLはリポジトリ画面の[Code]-[SSH]から取得できます。
使用例git clone git@github.com:username/repository.git Cloning into 'repository'... The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])? ← yes を応答するSSHキー生成の時にpassphraseを設定することでパスワードを要求させることもできます。
SSHキー生成(パスワードあり)$ ssh-keygen -t ed25519 # 全てデフォルトでエンター Generating public/private ed25519 key pair. Enter file in which to save the key (/home/username/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): ← ここでパスワード設定 Enter same passphrase again: ← ここでパスワード設定(再入力)使用例(パスワードあり)$ git clone git@github.com:com:username/repository.git Cloning into 'repository'... The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'github.com,xx.xx.xx.xx' (RSA) to the list of known hosts. Enter passphrase for key '/home/username/.ssh/id_ed25519': ← パスワードを要求される余談
EC2インスタンスでGitの設定(ユーザー名とEmailアドレスとか)せずにcommitを実行すると、Authorが以下のような値になるみたいです。
EC2 Default User <ec2-user@ip-xx-xx-xx-xx.ap-northeast-1.compute.internal>
おわり
ドキュメント見ればわかる内容ですが、ざっくりまとめでした。
今回は以上です。
- 投稿日:2021-01-28T22:57:37+09:00
GitHubがパスワード認証を廃止するらしいので
GitHubでは2021年8月13日にパスワード認証が廃止されるそうです。
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/という訳で、代わりに使用するであろう個人アクセストークンとsshの設定方法をメモします。
個人アクセストークン
以下のドキュメントを参考に取得します。
https://docs.github.com/ja/github/authenticating-to-github/creating-a-personal-access-token取得手順
GitHubにログインした状態で、以下を実施します。
・設定画面( https://github.com/settings/tokens )を開く
・[Developer settings]をクリック
・noteにトークンのわかりやすい名前を記入
・権限を設定
・[Generate token] をクリック
・トークンをコピー (ページを離れると参照不可になる)
・パスワードの代わりに使用する※トークンを使用してコマンドラインからリポジトリにアクセスするには、権限設定で[repo] を選択します。
※セキュリティ上の理由から、 GitHub は過去 1 年間使用されていない個人アクセストークンを自動的に削除します。使用例
リポジトリのURLはリポジトリ画面の[Code]-[HTTPS]から取得できます。
使用例$ git clone https://github.com/username/repository.git Cloning into 'legoth-oss-deploy-tool'... Username for 'https://github.com': username Password for 'https://username@github.com': ここで取得した個人アクセストークンを入力する※個人アクセストークンは HTTPS Git 操作だけにしか使用できません。
SSH
以下のドキュメントを参考に設定します。
https://docs.github.com/ja/github/authenticating-to-github/connecting-to-github-with-ssh設定手順
SSHキーを生成
以下のコマンドでSSHキーを生成します。
WindowsはGitBashで生成できます。SSHキー生成$ ssh-keygen -t ed25519 # 全てデフォルトでエンター Generating public/private ed25519 key pair. Enter file in which to save the key (/home/username/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: $ ls ~/.ssh # id_ed25519 id_ed25519.pubが生成される。 authorized_keys id_ed25519 id_ed25519.pubGitHubアカウントへの新しいSSHキーの追加
GitHubにログインした状態で、以下を実施します。
・設定画面( https://github.com/settings/ssh )を開く
・[New SSH key]をクリック
・Titleを記入
・Keyにid_ed25519.pubの内容を記入
・[Add SSH Key]をクリック使用例
リポジトリのURLはリポジトリ画面の[Code]-[SSH]から取得できます。
使用例git clone git@github.com:username/repository.git Cloning into 'repository'... The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])? ← yes を応答するSSHキー生成の時にpassphraseを設定することでパスワードを要求させることもできます。
SSHキー生成(パスワードあり)$ ssh-keygen -t ed25519 # 全てデフォルトでエンター Generating public/private ed25519 key pair. Enter file in which to save the key (/home/username/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): ← ここでパスワード設定 Enter same passphrase again: ← ここでパスワード設定(再入力)使用例(パスワードあり)$ git clone git@github.com:shiro01/goapp-tasks.git Cloning into 'goapp-tasks'... The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established. RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added 'github.com,xx.xx.xx.xx' (RSA) to the list of known hosts. Enter passphrase for key '/home/username/.ssh/id_ed25519': ← パスワードを要求される余談
EC2インスタンスでGitの設定(ユーザー名とEmailアドレスとか)せずにcommitを実行すると、Authorが以下のような値になるみたいです。
EC2 Default User <ec2-user@ip-xx-xx-xx-xx.ap-northeast-1.compute.internal>
おわり
ドキュメント見ればわかる内容ですが、ざっくりまとめでした。
今回は以上です。
- 投稿日:2021-01-28T22:11:08+09:00
Gitのローカルブランチを削除(マージせずリモートで削除したブランチも一括で消したい)
gitで、マージ済みブランチを一括で消す方法は沢山でてくる。
git branch --merged|egrep -v '\*|develop|master'|xargs git branch -d参考リンク
https://qiita.com/hajimeni/items/73d2155fc59e152630c4でもマージしないでリモートで削除しちゃったブランチについて、
ローカルブランチを一括で消す方法が日本語記事で出てこないので、
調べると、英語圏にはあった。git fetch -p && git branch -vv | grep 'origin/.*: gone]' | awk '{print $1}' | xargs git branch -DこれでRstudioのgitのブランチ選択欄に
削除したブランチの亡霊がたまるのを回避できるよ!
- 投稿日:2021-01-28T15:29:08+09:00
git push heroku masterでruby-2.6.5 on heroku-20とエラーが出た件
はじめに
今回はHerokuでのデプロイの際に以下のようなエラーが出たので解決策を記録しておこうと思います。
ターミナルremote: ! remote: ! The Ruby version you are trying to install does not exist on this stack. remote: ! remote: ! You are trying to install ruby-2.6.5 on heroku-20. remote: ! remote: ! Ruby ruby-2.6.5 is present on the following stacks: remote: ! remote: ! - cedar-14 remote: ! - heroku-16 remote: ! - heroku-18 remote: ! remote: ! Heroku recommends you use the latest supported Ruby version listed here: remote: ! https://devcenter.heroku.com/articles/ruby-support#supported-runtimes remote: ! remote: ! For more information on syntax for declaring a Ruby version see: remote: ! https://devcenter.heroku.com/articles/ruby-versions remote: !開発環境
- Ruby 2.6.5
- Bundler 2.1.4
- Rails 6.0.0
- MySQL 5.6.50
解決方法
結論から言うと
Herokuのstack
がruby 2.6.5
に対応していないのが原因です。
今回の場合だと、stack-20
が対応していないので、stackのバージョンを下げることで解決できます。エラー分の真ん中あたりにも
heroku-16
heroku-18
などと提案してくれているので、stack-18
にバージョンを下げます。ターミナルで以下のコマンドを実行します。
ターミナル% heroku stack:set heroku-18 -a アプリ名 # 以下のように出力されれば成功 Setting stack to heroku-18... done次に
heroku apps:info
コマンドでバージョンを確認してみましょう。ターミナル% hroku apps:info === my_app Addons: cleardb:ignite Auto Cert Mgmt: false Dynos: Git URL: https://git.heroku.com/my_app.git Owner: メールアドレス Region: us Repo Size: 0 B Slug Size: 0 B Stack: heroku-18 Web URL: https://my_app.herokuapp.com/stackが
heroku-18
になっていることを確認しましょう。ここまで来たら、Commit履歴を残しておくといいでしょう。
ターミナル% git commit --allow-empty -m "Downgrading to heroku-18"ターミナルで以上のコマンドを実行するとGitにCommit履歴が残っているので、pushしておきましょう。
ここまで来たらHerokuにpushしてデプロイしましょう。
git push heroku master
をターミナルで実行し、デプロイをしましょう。
- 投稿日:2021-01-28T07:39:48+09:00
(Git・GitHub)チーム開発で必須コマンド
チーム開発でよく使用したコマンドをまとめました。
ターミナル(1)$ git clone リポジトリURL (2)$ git branch (3)$ git checkout 切り替えるブランチ名 (4)$ git checkout -b 切り替えるブランチ名 (5)$ git add ファイル名 (6)$ git commit -m "コメント" (7)$ git push origin 作業ブランチ名 (8)$ git pull origin 取得するブランチ名 (9)$ git merge 取得するブランチ名1.リポジトリのファイルをローカルPCに取得
2.ブランチ一覧が表示
3.ブランチ名を指定して切り替え
4.ブランチの作成と切り替えをまとめて実行できる。
5.インデックスに追加
6.メッセージをつけて変更履歴を保存
7.ローカルの変更をリモートリポジトリにアップロードする。
8.リポジトリの差分のデータを取得できる(fetchとmergeをまとめて実行できるコマンド)
9.ローカルブランチに反映する補足
ターミナル$ git fetch origin $ git merge ブランチ名
- リモートリポジトリからローカルにあるリモートリポジトリの最新版を取得する
- ローカルブランチに反映する