Gitマスター育成プログラム(第3ヶ月目:リモートリポジトリを活用したチーム開発)
目的: ローカルリポジトリをリモートリポジトリ(GitHub)に接続し、チーム開発の基本的なワークフローを習得する。
9. ローカルリポジトリをリモートリポジトリに接続する
9.1 GitHubにリモートリポジトリを作成
- GitHubにログインし、新しいリポジトリを作成
- リポジトリ名を決定(例:
team-project
) - Public か Private かを選択

- 「Create repository」をクリック
9.2 ローカルリポジトリをリモートに接続
既にローカルにあるリポジトリのディレクトリに移動して右クリックして「Open Git Bash here」を選択。
リモートリポジトリを追加(usernameは自分のユーザー名にすること)
git remote add origin git@github.com:username/team-project.git
リモートリポジトリの設定を確認
git remote -v
ローカルの main
ブランチをリモートにプッシュ (mainブランチがある前提)。
main
ブランチが存在しても、何もコミットがない場合、Git は push
を許可しません。リポジトリに少なくとも1つのコミットを作成しましょう。
git push -u origin main
GitHubで main
ブランチがプッシュされたことを確認

main
ブランチがプッシュされたことを確認10. リモートリポジトリへの操作
Git 演習: Bさんのローカルリポジトリに既に my_project
がある場合の対応
前提
- ローカルリポジトリ名:
my_project
- リモートリポジトリ名:
team-project
- Aさんが
team-project
に変更をプッシュ - Bさんのローカルに既に
my_project
がある
Bさんがリモートの変更を取得する方法
Bさんはリモートの最新の変更を取得し、ローカルを更新する必要があります。
1. Bさん: git status
で作業ツリーの状態を確認
まず、Bさんはローカルリポジトリ(my_project)の状態を確認します。
git status
- クリーンな状態("nothing to commit")の場合 → 次のステップへ
- 変更がある場合(
modified
やuntracked
のファイルがある)- 変更をコミットする(
git add . && git commit -m "ローカルの変更を保存"
) - もしくは、一時的に変更を退避する(
git stash
)
- 変更をコミットする(
2. Bさん: git remote -v
でリモートリポジトリの確認
現在のリモートリポジトリを確認します。
git remote -v
出力例:
origin git@github.com:sayconCoJp/team-project.git (fetch)
origin git@github.com:sayconCoJp/team-project.git (push)
origin
が正しく設定されていればOK- 違うリポジトリが設定されている場合
- 正しいリポジトリに変更する
git remote set-url origin git@github.com:sayconCoJp/team-project.git
3. Bさん: git fetch
でリモートの最新情報を取得
Aさんがリモートにプッシュした変更を取得する。
git fetch origin
- これにより、リモートの最新の変更情報がローカルにダウンロードされる。
- ただし、まだローカルブランチには影響を与えない。
4. Bさん: git branch -a
でリモートブランチの確認
リモートリポジトリに新しいブランチが追加されたかを確認。
git branch -a
出力例:
* main
remotes/origin/main
remotes/origin/feature-a
remotes/origin/feature-a
が見えれば、Aさんの変更がリモートに反映されていることを確認できる。
5. Bさん: git pull
で最新の変更を取得
main
ブランチの最新の変更をローカルに適用する。
git pull origin main
- もしブランチが存在しない場合(例:
feature-a
)、以下のコマンドで取得。
git checkout -b feature-a origin/feature-a
6. Bさん: 変更を確認
Aさんの変更が反映されているか確認。
git log --oneline --graph
ls
cat file-a.txt # Aさんの変更が反映されているか確認
7. Bさん: 変更を加えてリモートにプッシュ
Bさん も main
に変更を加え、リモートにプッシュする。
echo "Bさんの追加変更" >> file-a.txt
git add file-a.txt
git commit -m "Bさんが file-a.txt を更新"
git push origin main
8. Aさん: git pull
で Bさん の変更を取得
今度は Aさん が git pull
を実行し、Bさんの変更を取得。
git pull origin main
cat file-a.txt # 変更内容を確認
Bさんのローカルリポジトリがある場合の対応まとめ
操作 | コマンド |
---|---|
ローカルの変更を確認 | git status |
リモートリポジトリのURLを確認 | git remote -v |
最新のリモート情報を取得 | git fetch origin |
リモートブランチを確認 | git branch -a |
最新の変更をローカルに適用 | git pull origin main |
新しいブランチを取得 | git checkout -b feature-a origin/feature-a |
変更を加えてリモートにプッシュ | git push origin main |
ポイント
git clone
は不要(すでにmy_project
があるため)- リモートリポジトリの状態を確認する
git fetch
を実行し、リモートの最新情報を取得するgit pull
でリモートの変更をローカルに適用する- 必要なら新しいブランチをチェックアウトする
cat file-a.txt # 変更内容を確認
11. チーム開発のワークフロー
11.1 ブランチを活用した開発フロー
develop
ブランチを作成し、リモートにプッシュ
git branch develop
git switch develop
git push -u origin develop
feature-UI
というブランチを作成し、index.html
を作成
git branch feature-UI
git switch feature-UI
echo "<h1>Hello, UI</h1>" > index.html
git add index.html
git commit -m "UIデザインを追加"
feature-UI
をリモートにプッシュ git push origin feature-UI
git push origin feature-UI
11.2 プルリクエスト(Pull Request, PR)
GitHub上で feature-UI
のプルリクエストを作成し、develop
にマージ
メンバーにレビューを依頼
問題がなければマージ
12. 練習問題
問題1: ローカルリポジトリをリモートに接続
git init
で新しいローカルリポジトリを作成README.md
を作成し、「リモートリポジトリの練習」と記述してコミット- GitHubに新しいリポジトリを作成
git remote add origin
でリモートと接続git push origin main
でリモートにプッシュ
問題2: チーム開発を想定したブランチ管理
develop
ブランチを作成し、リモートにプッシュfeature-auth
というブランチを作成し、auth.txt
を作成git push
でfeature-auth
をリモートに送信- GitHubで
feature-auth
のプルリクエストを作成し、develop
にマージ
問題3: 他のメンバーの変更を取得
main
ブランチにいる状態で、別のメンバーがfeature-db
をリモートにプッシュしたと仮定git fetch
を実行し、リモートの変更を取得git merge origin/feature-db
で変更をローカルに統合git log --oneline --graph
で履歴を確認
問題4: コンフリクトを解決
main
でconflict.txt
を作成し、適当な内容をコミットしてプッシュfeature-update
でconflict.txt
を異なる内容に変更し、コミット後にプッシュfeature-update
をmain
にマージしようとし、コンフリクトを発生させる- 手動でコンフリクトを解決し、マージを完了
問題5: GitHubでフォーク & プルリクエスト
- 別のユーザーのGitHubリポジトリをフォーク
- 自分のリポジトリに
git clone
してローカルに取得 fix-bug
というブランチを作成し、コードを修正git push
でリモートに送信し、GitHubでプルリクエストを作成- オリジナルのリポジトリの管理者にレビューしてもらう
問題6: 過去のバージョンをGitHubから復元
git log --oneline
で過去のコミットを確認- 2つ前のコミットのIDを使って
git checkout <コミットID>
で過去の状態に移動 - その状態で新しいブランチ
rollback-test
を作成し、git push
でリモートに保存 - GitHub上で
rollback-test
の内容を確認
この第3ヶ月目の練習を通して、リモートリポジトリを活用したチーム開発に慣れていきましょう!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
最新の投稿
新入社員2025年3月2日Gitマスター育成プログラム(第3ヶ月目:リモートリポジトリを活用したチーム開発)
新入社員2025年3月2日Gitマスター育成プログラム(第2ヶ月目:ブランチを活用した開発フロー)
新入社員2025年3月2日Gitマスター育成プログラム(第1ヶ月目:Gitの基本操作と履歴管理)
新入社員2025年3月2日遺伝的アルゴリズムを新人エンジニア向けに解説!