Git で日常的に遭遇する頻出エラー: 作業を進めようとした瞬間、突然出るこのエラー。「commit するか stash しろ」とは書いてあるけど、どっちを選べばいいのか、どっちが正解なのか分からない…。 現場では: など、選択肢が多くて迷います。間違った選択で大切な変更を失うリスクもあります。 し […]
Git を使い始めた頃、多くの人が一度は遭遇する謎めいたエラー: **「関連のない履歴同士は merge できません」**という Git からの拒絶。エラーメッセージは短いのに、何が起きているのか分からず途方に暮れる…。 このエラーが特に厄介なのは、通常の操作の流れでも突然発生すること: しかも、- […]
Git で「変更を取り消したい」場面で登場する3つのコマンド、reset / revert / restore: 一見似ていますが、動作も、リスクも、使うべき場面も全く違います。誤用すると: 現場では: など、混乱と誤解の温床。Git 初中級者と上級者を分ける最大の分岐点の一つです。 本記事では、g […]
作業中に「あ、緊急で別ブランチの修正が必要」「pull したいけど未commitの変更がある」…そんな時に頼れる Git の便利機能が stash: git の一時的な避難場所として、日々多用される機能。しかし、実際に使い始めると: など、意外と知らない機能や落とし穴が多くあります。 pop vs […]
Git を使いこなす上級者と初心者を分ける最大のスキルの一つが rebase: rebase を使いこなすと: 一方で、rebase は危険な操作でもあります: 多くの開発者が「rebase は怖いから merge しか使わない」で終わってしまいます。 しかし、rebase の仕組みを理解すれば、こ […]
Git を使い始めて、多くの人が最初にぶつかる壁の一つ: または、しばらく問題なく使えていたのに、突然: 一体何が起きているのか、慌ててしまう場面。 GitHub は2021年8月に、パスワード認証を廃止し、SSH 鍵 or Personal Access Token 必須化しました。この変更で「昔 […]
Git を使っていて最も緊張する瞬間の一つが、merge conflict の発生: エディタで開くと、見慣れない記号が…: 「これはどうすればいいんだ…」と手が止まる。 しかし、conflict は バグではなく、Git が「2人が同じ場所を違う方法で変更したから、人間が判断してくれ」と言っている […]
MySQL のクエリが遅い時、真っ先に打つべきコマンドが EXPLAIN: 出力例: わずか10列の情報の中に、MySQL がどうやってクエリを処理するかの全てが詰まっている。しかしそれを正しく読み解けなければ、EXPLAIN は「よく分からないおまじない」で終わってしまいます。 現場では: など、 […]
Rails 8 で標準採用され、Ruby on Rails のデプロイを劇的にシンプルにした Kamal 2: Basecamp / 37signals が開発し、Heroku や AWS 依存からの脱却を可能にした画期的ツール。1台のVPS(Hetzner/DigitalOcean/Linode/ […]
Linux サーバー運用でパフォーマンス問題が発生した時、真っ先に疑うべきはディスクI/O。CPU使用率もメモリも余裕があるのに、なぜかシステムが遅い…そんな時に頼りになるのが iostat コマンド: 上の例では %iowait 35%、%util 98.5%、r_await 45ms で明らかに […]