スキップしてメイン コンテンツに移動

投稿

注目の投稿

【Day 39】コードレビューの実践と3つのマージ方式の選び方

最近の投稿

【Day 38】Pull Request(PR)の仕組みとGitHub Flow実践

▲ 【Day 38】Pull Request(PR)の仕組みとGitHub Flow実践 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回(Day 37)はリモート追跡ブランチの仕組みと、事故を防ぐ「fetch先行」の同期作法を学びました。 そして本日のDay 38では、GitとGitHubを導入する最大の価値と言っても過言ではない 【Pull Request(プルリクエスト / 通称PR)の仕組みとGitHub Flow】 を徹底マスターします! 30年選手のベテランエンジニアから最も頻繁に寄せられる疑問がこれです: 「Subversion(SVN)時代は、C#のコード修正が終わったら直接中央(trunk)にコミットして終了だった。なぜGitではわざわざブランチを切って、Webブラウザを開いて、他人に『取り込んでください』とお願い(Pull Request)しなければならないんだ? 二度手間で面倒ではないか?」 お気持ちはとてもよく分かります。しかし結論から申し上げますと、 PRを使わない直接push運用は、いわば「鍵も監視カメラもない無施錠の金庫に全員が手を突っ込んでいる」のと同じ状態 なのです! 本講義では、Pull Requestがチーム開発の「絶対防衛ライン(品質ゲート)」としてなぜ不可欠なのか、そして世界中で標準採用されている最もシンプルで強力な運用法 「GitHub Flow」 の実践手順を余すところなく解説します! ① なぜ直接mainにpushしてはいけないのか? 品質審査ゲート制への移行 SVNやVSSの中央集中型バージョン管理では、すべての開発者が単一の中央リポジトリ(trunk)に直接コミットを送信していました。 この運用が許されていたのは、「少人数で全員の顔が見え、各自が慎重に作業していた」という暗黙の前提があ...

【Day 40】コンテナ内でのGit操作・SSH鍵・GPG署名のフォワーディング 〜秘密鍵をコンテナに渡さずVerifiedコミット&社内NuGet認証を実現〜

▲ Day 40: コンテナ内でのGit操作・SSH鍵・GPG署名のフォワーディング 〜秘密鍵をコンテナに渡さずVerifiedコミット&社内NuGet認証を実現〜 🐳 「コンテナの中で git commit や push をするとき、SSH秘密鍵はどうやって渡していますか?」 前回のDay 39では、VS Code Dev Containersを使ったF5ステップ実行デバッグの極意を学びました。 そして開発が進めば、当然ながら「コンテナ内のターミナルからソースコードをコミットし、GitHubのリモートリポジトリへ git push したい」という場面に直面します。 ここで、旧来のVM(仮想マシン)やサーバー感覚のエンジニアがやってしまいがちな 最悪のセキュリティ事故 がこちらです。 「ホストの ~/.ssh/id_rsa をコンテナの ~/.ssh/ に手動コピーする」 「Dockerfile に COPY id_rsa /root/.ssh/ と書いてイメージをビルドしてしまう」 もしそのイメージをDocker Hubや社内レジストリにプッシュしたり、チームメンバーに配布したら…あなたの秘密鍵は世界中に丸見えとなり、即座に大インシデントです! 本講義では、 秘密鍵をコンテナ内に1ミリも持ち込まずに 、ホストのSSH認証を安全に中継する「SSH Agent Forwarding」の仕組みから、VS CodeによるGit設定(user.name / email)の自動同期、GitHub上で緑色の「Verified」バッジを獲得するGPG署名転送、そしてC#開発で不可欠な「社内プライベートNuGetフィード認証」まで、エンタープライズ現場で必須のセキュリティ実践技を徹底伝授します! 📋 本日の講義アジェンダ ...

【Day 37】GitHubリモートリポジトリとの同期(push / fetch / pull)

▲ 【Day 37】GitHubリモートリポジトリとの同期(push / fetch / pull) 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回までの第7部「Windows & C# (.NET) 固有の落とし穴完全制覇」では、改行コードCRLF、大文字小文字区別、gitignore、Git LFS、そして260文字制限(core.longpaths)と、Windows環境特有の地雷をすべて解体しました。 そして本日のDay 37より、いよいよ待望の 【第8部: GitHubリモート連携&チーム統制・品質ゲート】 が開幕します! ローカル環境での個人作業から、クラウド上のGitHubをハブとした「本格的なチーム開発」へとステージが一段上がります。 しかし、30年選手のベテランさんほど真っ先にハマるのが、朝のルーティンで行う「最新コードの取得」です。 「Subversion(SVN)時代は、出社したらまず SVN update を叩くのが日常だった。だからGitでも同じ感覚で git pull を打ったのだが…いきなりマージコミットが自動生成されたり、予期せぬコンフリクトで自分の作業中C#コードが破壊されてビルドが通らなくなってしまった!なぜこんな危険な仕組みになっているんだ!?」 そんな悲鳴や戸惑いを抱いたことはありませんか? 結論から申し上げますと、 チーム開発において「いきなり git pull」を打つのは大変危険な悪習 です! 本講義では、リモートリポジトリ( origin / upstream )の真の構造を解き明かし、なぜ「まず git fetch して差分を確認してからマージする」のがプロの鉄則なのか、その全貌を徹底解説します! ① リモートリポジトリの正体!「origin」と「upstream」...

【Day 39】VS Codeでコンテナ内C#開発・デバッグ・ブレークポイント実行 〜完全分離された環境をF5キーで直感デバッグ〜

▲ Day 39: VS Codeでコンテナ内C#開発・デバッグ・ブレークポイント実行 〜完全分離された環境をF5キーで直感デバッグ〜 🐳 「Dockerコンテナの中だから、デバッグはログ出力で我慢する」なんて思っていませんか? 前回のDay 38では、 .devcontainer/devcontainer.json を使って開発環境のすべてをコード化(IaC)し、Gitでチーム共有する手法を学びました。 しかし、現場のエンジニアから最もよく聞かれる不安がこれです。 「コンテナの中で動いているC#アプリって、本当にVisual Studioのようにブレークポイントで止めて、ステップ実行や変数の中身を見られるの?」 結論から申し上げます。 ローカルPC直接実行と1ミリも変わらない快適さで、F5キーを押すだけで完全にデバッグできます! ホストのVS Codeとコンテナ内のMicrosoft公式デバッガ(vsdbg)が阿吽の呼吸で連携するため、ブレークポイント設定、F10ステップオーバー、F11ステップイン、変数ウォッチ、さらには dotnet watch によるホットリロードまで自由自在です。本講義では、コンテナ内デバッグの裏側の仕組みから、launch.jsonの実践設定、バグ修正Git運用まで徹底解説します! 📋 本講義の学習ロードマップ 第1章:30年選手の苦笑い:「リモートデバッグの苦行」とポート開放のトラウマ 第2章:コンテナ内デバッグの裏側:VS Code Server と vsdbg の美しい連携アーキテクチャ 第3章:徹底対比:従来の遠隔デバッグ vs Dev Containers(完全比較表) 第4章:現場の2刀流:...

【Day 36】深い名前空間でのパス長260文字制限の解除(core.longpaths)

▲ 【Day 36】深い名前空間でのパス長260文字制限の解除(core.longpaths) 👨‍🏫 皆さん、こんにちは! 本講座の専任講師です。 前回のDay 35では、リポジトリ巨大化を防ぐ「Git LFS(Large File Storage)」による大容量バイナリ管理をマスターしました。 続く本日のDay 36は、第7部「Windows & C# (.NET) 固有の落とし穴完全制覇」の第4弾―― Windows環境でC#開発者を突如襲う恐怖のエラー 【深い名前空間でのパス長260文字制限の解除(core.longpaths)】 を完全制覇します! 「リポジトリを git clone や git checkout したら、突然 error: unable to create file ... : Filename too long と怒られてチェックアウトが途中で止まってしまった…!」 「30年間VSSやSVNを使ってきたけれど、こんな理不尽なエラーは見たことがない!真面目にC#でDDDやクリーンアーキテクチャの綺麗な名前空間を設計しているだけなのに、なぜGitだと怒られるのか…!?」 そんな悲鳴や疑問を抱いたことはありませんか? 実はこれ、MS-DOSやWindows 95時代からWindowsのOS内部に眠る「魔の260文字制限(MAX_PATH)」という歴史的呪いが原因です。 しかし恐れる必要はありません。 Git側の core.longpaths 設定と、Windows 10/11のレジストリ設定という【2つの鍵】 を回すことで、この制限を最大32,767文字まで完全拡張し、二度とエラーを出さない環境を構築できます。 本講義で、発生の根本メカニズムから具体的なコマンド、チーム開発での運用鉄則まで一挙に攻略していきましょう! ...