ブログの構造を整理した 2

前回のブログ
その後のお話
細かいところをせっせと直しているときに、もうひとつのサイトのほうもやろうかなと思い始めたんですね。 他にも放置しているところありますけど・・・。
結局、やめたんですけどね。
こちらで使っているthemeは stack なんですけど、public部分(Hugoで生成されたhtmlたち)を別リポジトリで管理しているんですよね。
1個にまとめちゃったほうが管理しやすいんじゃないの?と、のっちーに相談していたのです。結局のところは先ほど書いた通り、何もしなかったわけですが、相談している中であることを知りました。
publicを生成する場所
- ローカル環境で生成されたpublicをGitHubへpushする ※いまの私
- publicはpushせず、GitHub上でHugoを実行してpublicを生成する
みんな2番のやり方知ってた!?
のっちー曰く、2のほうが主流だってさ。
じゃあ、2にしよう
publicがpush、pullの対象から外れるので多少の時短になりますね。
あとは手元にHugoがなくてもMarkdownをイジってpushすると公開が可能だったり、あれこれとあるようですが、正直なところ2にしなくても困らんのですけど、整理ついでに実行です。
GitHubでHugoを動かすというのがよくわからないし、それって無料契約でもできるのかと疑問でしたができました。
Actionsで PC環境を用意 → Hugoを都度インストール → 実行 が可能なんですって。すごいね。
publicをGit管理から外す
.gitignore に追記
| |
Actions書き換え
元々、publicの中身をWEBサーバーへFTP転送する仕組みが書かれています。
その前にHugoをインストールして実行する手順を追加。
こちらはサンプルです。
FTP転送も省いています。
| |
push用スクリプトの修正
私の場合、ローカルでスクリプトを実行してpushしています。
その中でhugoを実行するくだりがありますが、GitHub上で動かすことになるため、単純に削除します。
過去の履歴を消す
さらについでの話。
publicを管理しなくなったので、その部分の過去の履歴も不要となりました。
やらなくても支障はありませんが、ここまで来たら・・・。
コマンド紹介
git filter-repoというコマンドでお掃除が可能ということ。
Linuxにインストールして実行しました。
gitの標準機能には含まれていないのでインストールが必要です。
git filter-repo --path public --invert-paths
public以外を残す = publicのみを削除する という意味になるそうです。
手順
ざっくり書くとこんな感じ。
- git cloneする ※お掃除するときは新規に作るのがスジらしい
git filter-repo --path public --invert-pathsを実行する ※origin外れる- force pushする ※origin付け直しも含め
ちなみに不要となった履歴情報を消した結果、168.96MiB → 37.73MiB に減少。
- MB(メガバイト):基本は 10進(キリのいい単位)
- 1 MB = 1,000,000 bytes(10^6)
- MiB(メビバイト):2進(コンピュータが得意な単位)
- 1 MiB = 1,048,576 bytes(2^20)
つまり 1 MiB は 1 MB より約 4.86% 大きいです。
- 1 MB ≒ 0.954 MiB
- 1 MiB ≒ 1.049 MB
昔から「1KB=1024B」みたいに“2進っぽく”使われがちだったんですが、厳密にはそれだと10進の定義とズレます。
その混乱を減らすために、2進のほうは KiB/MiB/GiB という別名が作られました。
のっちーのおかげで新しいことを知った
記憶にはとどまらないので、たくさんNotionに書いておいた。
いや、のっちーに書いてもらった。
GitHub Actionsも、ローカルにやってきているとはつゆ知らず。.github\workflows\ の中にいらっしゃいました。
毎回、WEBで書き換えて、そのあとローカルからpushしようとするとバージョンが合わないと怒られていました。
他のファイルと同じようにローカルで書き換えれば済んだのね。アハッ。