Git

【Git】stashした内容を失ってしまったときの復元方法

「さっき git stash したはずの変更が消えた?」——そんなときでも、慌てなければ高確率で復元できます。 stashは内部的には“特別なコミット”として保存されており、reflogや“ぶら下がり(dangling)コミット”の探索で辿...
Git

【Git】pull後に大量のマージコミットが発生したときの原因と履歴整理方法

pullのたびにマージコミットが雪だるま式に増え、履歴が読みにくくなることがあります。 これはgit pullの既定動作が「フェッチ+マージ」であることに起因し、ローカルに自分のコミットが残った状態でリモートを取り込むたびに新しいマージコミ...
Git

【Git】ブランチ名を変更したらpushできなくなったときの対処法

ブランチ名をローカルで変更した直後にgit pushがエラーで拒否されるのは、追跡先(upstream)が古いブランチ名のまま残っている、リモート側に同名ブランチが存在する、あるいは保護設定で書き込みが禁止されていることが主な原因です。 ま...
Git

【Git】pushしようとしたら”non-fast-forward”で拒否されたときの解決方法

Gitでgit pushを実行した際にnon-fast-forwardエラーで拒否されるのは、 リモートの履歴が自分のローカルよりも先に進んでいる、あるいは互いに分岐していて「早送り(fast-forward)」で反映できないためです。 解...
Git

【Git】.gitignoreに追加しても既存ファイルが無視されないときの解決方法

Gitで追跡対象から外したいファイルを.gitignoreに追加したのに、すでにリポジトリに登録されているファイルは無視されずステージングされてしまうことがあります。 これはGitの仕組みによるもので、既に追跡中のファイルは.gitigno...
Git

【Git】コンフリクトを解消したのにpullできないときの原因と対策

Gitでコンフリクトを解消してマージ作業を終えたはずなのに、再度git pullやgit pushを試みるとエラーが出て進めないことがあります。 この状況は、コンフリクト解消後の手順抜けや、マージ状態が中途半端なまま残っていることが原因です...
Git

【Git】detached HEAD状態から元の作業ブランチに戻す方法

Gitで過去のコミットやタグをチェックアウトしたときに発生するのがdetached HEAD状態です。 この状態ではHEADが特定のブランチを指しておらず、直接コミットを積んでもブランチに反映されません。 本記事では、この状態から元の作業ブ...
Git

【Git】リモートとローカルの履歴が食い違ったときの同期方法|fetch・pull・rebaseの選び方

共同開発で起きやすいのが「ローカルとリモートの履歴が食い違った」状態です。 直近の変更を取り込まずに作業を進めた結果、pushが拒否されたり、pull後のマージコミットが増えすぎて履歴が読みにくくなることがあります。 本記事では、履歴のズレ...
Git

【Git】リモートブランチを削除しても残ってしまうときの原因と解決方法

Gitで不要になったリモートブランチを削除したのに、ローカル環境でgit branch -rを実行するとまだ残っている——そんな経験はありませんか。 これはリモートブランチが本当に存在しているのではなく、ローカルに古い参照(リモート追跡ブラ...
Git

【Git】巨大ファイルを誤ってコミットしたときの削除方法|BFG Repo-Cleanerとfilter-branch

誤って巨大ファイルをコミットしてしまうと、履歴全体が肥大化してクローンやフェッチが極端に遅くなり、ホスティングのサイズ制限にも引っかかる恐れがあります。 本記事では履歴から完全に痕跡を消すことを目的に、BFG Repo-Cleanerとgi...
Git

【Git】過去の特定ファイルだけ元に戻す方法|checkout・restoreの実例付き

誤って上書きしてしまったファイルや、過去の特定時点の内容に戻したいファイルだけを復元したい場面はGit運用でよくあります。 本記事では、リポジトリ全体ではなく特定ファイルだけを過去の状態に戻す方法を、git checkoutとgit res...
Git

【Git】間違えて別ブランチで作業したときの復旧方法|cherry-pickとrebaseの活用

ブランチを切り替え忘れて別ブランチにコミットしてしまった——実務で頻出するヒューマンエラーです。 本記事では、履歴を安全に移し替える考え方と、git cherry-pickおよびgit rebase --ontoを使った復旧手順を、 失敗し...
Vue.js

【Vue.js】PWA化してオフライン対応する方法|Service Workerの導入

VueアプリをPWA(Progressive Web Apps)対応すると、オフラインでも動く、ホーム画面に追加できる、再訪時が高速といったメリットが得られます。本記事では、Vue 3 + Viteを前提に、最短の導入手順(vite-plu...
Vue.js

【Vue.js】外部APIの結果をキャッシュしてAPIコール回数を削減する方法

外部APIの呼び出しが多いと、描画性能の低下やレート制限、コスト増の原因になります。Vue 3では、Composableで「メモリ/LocalStorageのキャッシュ」「TTL(有効期限)」「キー設計」を共通化しておくと、どのコンポーネン...
Vue.js

【Vue.js】Stripe決済を組み込む方法|Checkout API活用例

最短で安全にカード決済を導入するなら、Stripeのホスト型UI「Checkout」が便利です。バックエンドでセッションを作成し、フロント(Vue)からStripe.jsでリダイレクトするだけで決済画面を提供できます。この記事では、Vue ...
Vue.js

【Vue.js】Firebase Authenticationでメールアドレス認証を実装する方法

Firebase Authenticationを使えば、メールアドレスとパスワードによる認証を短時間で実装できます。この記事では、Vue 3(Composition API)+ Firebase v9(modular SDK)での導入手順か...
Vue.js

【Vue.js】SSR(サーバーサイドレンダリング)で初期表示を高速化する方法

SPAは初回アクセスでJavaScriptをダウンロード・解析・実行してから画面を描画するため、ネットワークや端末性能の影響を受けやすく、初期表示(FCP/LCP)が遅くなりがちです。SSR(Server-Side Rendering)を導...
Vue.js

【Vue.js】i18nを遅延読み込みして多言語サイトを軽量化する方法

多言語対応でボトルネックになりがちなのが「全言語分の辞書を初期バンドルに含めてしまう」ことです。Vue 3 + vue-i18n(v9)では、言語ごとの辞書を動的インポートして必要になった時だけ読み込む構成にすることで、初期表示を軽量化でき...
Vue.js

【Vue.js】画像の遅延読み込み(Lazy Loading)をIntersection Observerで実装

Webサイトに多くの画像を配置すると、初期表示の読み込みが遅くなりユーザー体験が低下します。そこで有効なのが、画像を必要なタイミングで読み込む「遅延読み込み(Lazy Loading)」です。本記事では、Vue.jsとIntersectio...
Vue.js

【Vue.js】コードスプリッティングと遅延読み込みで初期表示を高速化する方法

SPAは機能が増えるほど初期バンドルが肥大化し、ファーストペイントが遅くなりがちです。Vue.jsでは「コードスプリッティング(分割)」と「遅延読み込み(ダイナミックインポート)」を組み合わせ、必要な画面・コンポーネントだけを後から読み込む...