ตัวอย่างบทเรียน

GitHubとリモートリポジトリ: クラウドでのコード管理

ローカル作業からチーム開発へ: remoteの概念、ローカルリポジトリとGitHubの連携方法、push・pull・fetchの違いについて解説します。これらのコマンドはよく混同されがちですが、それぞれの役割を明確に説明します。また、就職活動でも必須スキルであるSSHキーを使った認証設定についても詳しく取り上げます。

リモートリポジトリ origin push / pull / fetch
คุณจะเรียนรู้อะไรในบทเรียนนี้
  • GitHubでリポジトリを作成し、ローカルプロジェクトと連携して変更をpushで公開できるようになります。
  • fetchとpullの違いを理解し、チーム開発で適切に使い分けられるようになります。
  • プロフェッショナルが行う方法で、パスワード不要のSSH認証をGitHubに設定できるようになります。

จุดเริ่มต้นของบทเรียน

なぜリモートリポジトリが必要なのか?

  • ローカルリポジトリ:自分のパソコン内のみ
  • リモートリポジトリ:チームのためのクラウドストレージ
  • 全員が同じ場所で変更を確認・追加できる
  • インターネット経由でリアルタイムに同期可能

個人開発であれば、ローカルのGitリポジトリで十分です。しかし、チームで開発する場合、共通の作業スペースが必要になります。リモートリポジトリは、全メンバーがアクセスできるコードの一元管理場所となります。これは、複数人で同時編集が可能なGoogle ドキュメントのようなものです。チームメンバーの変更をリアルタイムで確認し、プルリクエストを通じてコードレビューを行い、異なる機能を並行して開発できます。リモートリポジトリがなければ、ファイルのバージョン管理は混乱し、メールでのファイル送受信が頻繁に行われることになるでしょう。

ローカルリポジトリとリモートリポジトリの関係

  • Origin:デフォルトのリモートリポジトリ名
  • Push:変更をサーバーに送信
  • Pull:サーバーから変更を取得
  • 各リポジトリは独立し、完全な履歴を保持

ローカルリポジトリとリモートリポジトリは、「push」と「pull」の2つのコマンドでデータをやり取りします。デフォルトでは、メインのリモートリポジトリは「origin」と呼ばれます。ただし、これは単なるファイルのコピーではありません。各リポジトリは独立しており、完全な変更履歴を含んでいます。ローカルでコミットした内容は、pushコマンドで送信するまで自分だけのもの。また、チームメイトがコードを更新した場合は、pullコマンドで最新の状態に同期する必要があります。

1つのローカル、複数のリモート

  • 複数のリモートリポジトリを接続可能
  • Origin — GitHub上の個人用フォーク
  • Upstream — プロジェクトの元リポジトリ
  • 変更を簡単に同期可能

プロジェクトは複数のリモートリポジトリに同時に接続できます。例えば、originはGitHub上の個人用フォーク、upstreamはメインプロジェクトのリポジトリです。この構成により、元のソースから簡単に更新を取得しながら、自分のコピーに変更を加えることができます。これは、フォークを最新の状態に保つ必要があるオープンソースプロジェクトで特に便利です。いつ、どの変更をupstreamから自分のoriginに取り込むかは自分で決められます。リモートリポジトリの仕組みを理解したところで、GitHubに自分のリポジトリを作成しましょう。

# 新しいリモートリポジトリを追加
git remote add upstream https://github.com/original/project.git

# すべてのリモートリポジトリを表示
git remote -v

# upstreamからローカルブランチに変更を取得
git fetch upstream

git checkout main
git merge upstream/main

# 変更を自分のoriginにプッシュ
git push origin main

บทเรียนฉบับเต็มใช้ได้เมื่อสมัครสมาชิก

ฉบับเต็มมีสไลด์เพิ่มอีก 30 สไลด์

วิดีโอ สไลด์ทั้งหมด โน้ต แบบทดสอบ AI ติวเตอร์ และการสัมภาษณ์จะเปิดหลังเข้าสู่ระบบและสมัครสมาชิก

เข้าสู่ระบบหรือลงทะเบียน สมัครสมาชิก

เนื้อหาบทเรียน

  1. なぜリモートリポジトリが必要なのか?
  2. ローカルリポジトリとリモートリポジトリの関係
  3. 1つのローカル、複数のリモート
  4. GitHubで新しいリポジトリを作成
  5. READMEとライセンス - 最初のコミット
  6. ローカルリポジトリとGitHubを連携する
  7. リポジトリのクローンとは?
  8. クローンの2つの方法:HTTPSとSSH
  9. 実践:リポジトリをクローンする
  10. クローン後の設定を確認
  11. GitHubでパスワード認証が非推奨な理由
  12. SSHキーの仕組み
  13. SSHキーの作成方法
  14. GitHubにキーを追加
  15. コードをクラウドに送信: git push
  16. アップストリームブランチの設定
  17. プッシュ時のコンフリクト解決
  18. Git pull: クラウドとの同期
  19. git pullの内部動作
  20. git pullでよくある問題
  21. git pullが危険な理由
  22. Git fetch:安全な変更の取得
  23. 実践:fetchで変更を確認する
  24. fetchをpullの代わりに使用する場面
  25. 他人のブランチへのPush:プロセスを壊す理由
  26. 正しい方法:変更用に独自のブランチを作成
  27. 静かなる惨事:プルがあなたの変更を消し去るとき
  28. 救世主コマンド:git stashの活用
  29. GitHub:あなたのコードのためのクラウド収納
  30. SSHキーの設定:デジタルパスポート
  31. フォークからプルリクエストまで:チーム開発の流れ
  32. プルリクエスト:通常のプッシュとの違い
  33. まとめと課題

บทความเกี่ยวกับบทเรียนนี้

บทเรียนทั้งหมดในคอร์สนี้

  1. はじめに:ゼロから始めるGit - 自信を持って使える開発者を目指して
  2. Gitはなぜ必要なのか?~採用で求められるスキル~
  3. インストールとセットアップ:Gitの初回起動準備
  4. 最初のリポジトリ: init、add、commit、そしてインデックスの魔法
  5. Git履歴の読み方: log, diff, showと過去の履歴を辿る
  6. ブランチ: コードの並行現実
  7. ミスをなかったことに:restore、reset、revert ─ 正しい使い方と危険な落とし穴
  8. GitHubとリモートリポジトリ: クラウドでのコード管理
  9. チームワーク:フォーク、フィーチャーブランチ、プルリクエスト
  10. マージコンフリクト:慌てずに理解して解決する
  11. 実践的なチーム開発におけるGitワークフロー:最適な選択方法
  12. 上級者向けツール:rebase、stash、cherry-pick、タグ
  13. 最終プロジェクト:実際のチーム開発をシミュレートする