Gitはバージョン管理システムである。
デフォルトブランチをmaster → mainに変えたとき、ローカルで実行して対応する。
git branch -m master main
git fetch origin
git branch -u origin/main main
git remote set-head origin -a
pullやpushしたとき、↑が出てうまくいかなくなることがある。これは、ブランチ名とタグ名がかぶっていることが原因。どちらかを削除するとうまくいくようになる。
$ git branch -d xxx
$ git tag -d xxx
gitignoreしたディレクトリで、いつの間にかゴミファイルがたまりがち。
git clean -xdn # dry run
git clean -xdf # 実行
revertしたブランチの途中から再開すると、revertコミットのために差分が出ない。 なので、revertコミットをさらにrevertして、その上で作業を再開する。
git revert -m 1 {revertしたコミットハッシュ}
タグをつけるときに便利。
LC=$(git rev-parse --short HEAD)
echo ${LC}
↓みたいな感じで。
docker build -t ghcr.io/kijimad/webapp:${LC} .
依存パッケージインストール時、httpsでcloneできないことがある。証明書がないエラー。
git config --global http.sslVerify false
git clone https/ssl error - Stack Overflow
ファイルによって戦略を変えることができる。 特定のバイナリファイル…Wordファイルだったらこうやって変換してから差分を取る、など。 テキストに変換して、比較できる。
しばらく使っていると不要なブランチが溜まってきて重くなるので、定期的に不要なものを削除する。
git gc && git fetch --prune
直にGitコマンドを打つほかに、クライアントを使って操作する方法がある。 プログラミングと密接に関係しているので、エディタに付属したものを使うと、同じインターフェイスで扱えて便利。 例えばEmacsではMagitパッケージが人気。
差分があるとエラーにする。
$ test -z "$(git status -s)"
Gitの仕組み。
Gitの仕組みの解説。
日本語で無料公開されている本。 Gitの仕組みの章がとても面白い。 実際のGitが内部で行っていることを、原始的なコマンドを使ってやってみるというもの。
仕組みからの解説。
スター数のランキング。
Gitの美しい可視化ツール。
[[https://qiita.com/koara-local/items/e36bc172a3c36eb67b4f][[Git] remoteのtagとbranchの名前が同じ場合の消し方 - Qiita]]
GitHub Actionsで間違えたときになる。調べないとわからない。
基本的なGitの仕組みの解説。
なぜGoogleはモノレポで管理しているか。
Git commitテンプレート。
わかりやすいメッセージの書き方。
わかりやすく解説している。今までコミットの修正したことなかったな。