何もしてないのにGoogle認証に弾かれるようになった件と対処法

■tl;dr: 設定→コードの時刻調整→今すぐ同期

■状況:ある時 github にGoogle認証経由でログインしようとしたところ,authenticator が生成する数字を使ってもログインできなくなった.もちろんパスコードは期限内のものを使っている.

■問題は何だったか:
同様のトラブルがないかググったところ,どうもスマホの時刻がGoogleと同期していない状態になってしまっているらしいことがわかった.

■解決法:スマホの authenticator の右上をタップすると「設定」が出現するので順に「コードの時刻調整」「今すぐ同期」と押すと同期が回復する(はず).こうして再び github にログインできるようになった.

■IT関係で「何もしてないのに壊れた」という話が出ると大抵「これはやってもかまわないからノーカンでしょ」という行動で(相談者が)致命的な間違いを犯していることが多い.今回は「これはノーカン」ということも含めて特別な行動を起こしたことがないのに同期がズレてしまった.これからは誰かに相談されても「何もしてないのに壊れるわけないでしょ」と言ったり思ったりしないようにしないとな~.

github メモ

自分用メモです.

■開発作業
git checkout -b hoge #作業用ブランチを作成
★自由にコード等を編集する.
git commit -m "fix bug" #変更内容をコミット
git push origin hoge #自分のレポジトリにプッシュ
★github ページに言ってPull Request を作る.
★権威ある人に merge してもらう.

■自分のレポジトリを最新の状態に更新する
(git remote add upstream git@github.com:foo/bar.git)← upstream の登録は一度やればいい
git checkout master #作業ブランチを master に
git pull upstream master
git push origin master #自分のレポジトリにpush

■開発ブランチにmasterの内容を適用する(rebase)
git checkout master
git pull origin master
git checkout hoge
git rebase master

■コンフリクトが起きたとき:
git mergetool somewhere/conflictedSource.hs
これでWinMergeが勝手に立ち上がってくれる.(WinMergeをインストール済みであり,Gitに対応付けてある場合).

★叱られたらファイルを修正して
git rebase –continue

■何がうまくいかない場合とりあえず現状を把握する
git status

■Updates were rejected because the tip of your current branch
is behind とか言われた場合
git pull origin yourLocalBranchName

■ローカルでの変更が邪魔して pull できない場合
git stash save "some-name"

■作業ブランチの確認
git branch

■ブランチ一覧
git branch -a

■リモートブランチの一覧
git branch --remote

■リモートブランチ foo の削除
git push origin :foo

■リモートブランチ foo にある hoge ファイルだけ取ってくる
git fetch
git checkout origin/foo -- path-to-file

■作業ブランチをhogeに変更
git checkout hoge

■作業ブランチの名称を fuga に変更
git branch -m fuga

■手元のブランチ piyo をリモートに登録する
git push -u origin piyo

■git管理下にあるファイル一覧
git ls-files

■git管理下にあるファイルをすべてadd
git add .

■git管理下にあるファイルのリネーム
git mv aaa.txt bbb.txt

■出したプルリクを取り下げる
remoteにpush済みのブランチを削除することで紐づくpull requestを削除出来ます
git push --delete origin hoge

■url の確認
git remote -v

■git管理下にあるファイルを削除
git rm hogehoge
(ディレクトリごと:git rm -r hogedir )

■ファイルをローカルに残したままgit管理下からファイルを除く
(1) git rm --cached hogehoge
(2) .gitignore に追記する

■originの変更
git remote set-url origin git@github.com:foo/bar.git

■upstreamの変更
git remote set-url upstream git@github.com:foo/bar.git

■自分がコミットしたところだけログを見る
git log --author=differential.engine@gmail.com

こうやって
commit 23985b88d43328a72bacafb784d7e30f78357f83
Author: dif_engine
Date: Fri Jul 6 23:00:00 2018 +0900

だったとき
git diff 23985b88d43328a72bacafb784d7e30f78357f83 > hoge.txt
とするとコミット 23985b88d43328a72bacafb784d7e30f78357f83 から HEAD までの差分が手に入る.一般には
git diff COMMIT-ID1:COMMIT-ID2 > out.txt