GitHubとリモートリポジトリ: クラウドでのコード管理
ローカル作業からチーム開発へ: remoteの概念、ローカルリポジトリとGitHubの連携方法、push・pull・fetchの違いについて解説します。これらのコマンドはよく混同されがちですが、それぞれの役割を明確に説明します。また、就職活動でも必須スキルであるSSHキーを使った認証設定についても詳しく取り上げます。
- 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つのローカル、複数のリモート
- GitHubで新しいリポジトリを作成
- READMEとライセンス - 最初のコミット
- ローカルリポジトリとGitHubを連携する
- リポジトリのクローンとは?
- クローンの2つの方法:HTTPSとSSH
- 実践:リポジトリをクローンする
- クローン後の設定を確認
- GitHubでパスワード認証が非推奨な理由
- SSHキーの仕組み
- SSHキーの作成方法
- GitHubにキーを追加
- コードをクラウドに送信: git push
- アップストリームブランチの設定
- プッシュ時のコンフリクト解決
- Git pull: クラウドとの同期
- git pullの内部動作
- git pullでよくある問題
- git pullが危険な理由
- Git fetch:安全な変更の取得
- 実践:fetchで変更を確認する
- fetchをpullの代わりに使用する場面
- 他人のブランチへのPush:プロセスを壊す理由
- 正しい方法:変更用に独自のブランチを作成
- 静かなる惨事:プルがあなたの変更を消し去るとき
- 救世主コマンド:git stashの活用
- GitHub:あなたのコードのためのクラウド収納
- SSHキーの設定:デジタルパスポート
- フォークからプルリクエストまで:チーム開発の流れ
- プルリクエスト:通常のプッシュとの違い
- まとめと課題
บทความเกี่ยวกับบทเรียนนี้
- Git และ GitHub: ต่างกันอย่างไร และเชื่อมโยงกันอย่างไร
- git fetch และ git pull: ต่างกันอย่างไร และควรเลือกอะไร
- คำสั่ง Git: ชีตสรุปพร้อมตัวอย่างสำหรับใช้ทุกวัน
- รีโพซิทอรี Git: สร้างด้วย git init และเชื่อม remote อย่างไร
- git clone: วิธีโคลนรีโพซิทอรีจาก GitHub และที่อื่น
บทเรียนทั้งหมดในคอร์สนี้
- はじめに:ゼロから始めるGit - 自信を持って使える開発者を目指して
- Gitはなぜ必要なのか?~採用で求められるスキル~
- インストールとセットアップ:Gitの初回起動準備
- 最初のリポジトリ: init、add、commit、そしてインデックスの魔法
- Git履歴の読み方: log, diff, showと過去の履歴を辿る
- ブランチ: コードの並行現実
- ミスをなかったことに:restore、reset、revert ─ 正しい使い方と危険な落とし穴
- GitHubとリモートリポジトリ: クラウドでのコード管理
- チームワーク:フォーク、フィーチャーブランチ、プルリクエスト
- マージコンフリクト:慌てずに理解して解決する
- 実践的なチーム開発におけるGitワークフロー:最適な選択方法
- 上級者向けツール:rebase、stash、cherry-pick、タグ
- 最終プロジェクト:実際のチーム開発をシミュレートする