リポジトリのクローンとカスタマイズ
テンプレートや既存のプロジェクトをベースに、自分専用のリポジトリを作る方法を解説します。origin(自分のリポジトリ)と upstream(元のリポジトリ)の関係を正しく理解することで、安全にカスタマイズと更新の取り込みができるようになります。
対象読者: GitHub の基本操作(アカウント作成・SSH設定)を済ませた方
学習時間の目安: 読了 15分 + 実践 15分
前提知識: GitHub アカウントと SSH 鍵の設定 が完了していること
- Git がインストール済み
- GitHub アカウントを作成済み
- VS Code などのターミナルが使える環境
プライベートリポジトリを作成する
Section titled “プライベートリポジトリを作成する”まず、自分用の新しいリポジトリを GitHub に作成します。
- GitHub にログイン
- 右上の「+」→「New repository」をクリック
- Repository name に名前を入力(例:
your-repo-name) - Private を選択(公開したい場合は Public)
- 「Create repository」をクリック
作成後の URL は以下のようになります。
https://github.com/you/new_repo.gitテンプレートをクローンしてオリジナル接続を解除する
Section titled “テンプレートをクローンしてオリジナル接続を解除する”テンプレートリポジトリをクローンし、元の origin 接続を切り離します。
# テンプレートリポジトリをクローン
git clone https://github.com/someone/original_repo.git
cd original_repo
# 現在のリモート一覧を確認
git remote -v
# オリジナルの origin 接続を解除
git remote remove origin
# 確認(何も表示されなければ OK)
git remote -v💡
git remote remove originでリモートの接続を解除するだけで、ローカルのファイルは削除されません。安心して実行してください。
自分用リポジトリを紐付けて初期コミットする
Section titled “自分用リポジトリを紐付けて初期コミットする”オリジナル接続を解除したら、自分用リポジトリを新しい origin として登録し、最初のコミットを push します。
# ファイルをステージング&初期コミット
git add .
git commit -m "Initial commit"
# 自分用リポジトリを origin に追加
git remote add origin https://github.com/you/new_repo.git
# main ブランチを push してトラッキング設定
git push -u origin mainこれでローカルと自分用リモートがつながりました。以降は git push だけで push できます。
⚠️
git push -u origin mainで「mainブランチが存在しない」というエラーが出る場合は、テンプレートのデフォルトブランチ名がmasterになっている可能性があります。git branch -M mainでブランチ名を変更してから push してください。
アップストリームを設定して更新を取り込む
Section titled “アップストリームを設定して更新を取り込む”元のテンプレートが更新された場合に変更を取り込めるよう、upstream を設定します。
# upstream を追加
git remote add upstream https://github.com/someone/original_repo.git
git remote -v
# 最新情報を取得してマージ
git fetch upstream
git checkout main
git merge upstream/main⚠️ マージ時にコンフリクト(競合)が発生した場合は、該当ファイルを手動で修正してください。修正後は
git add <ファイル>→git commitで完了します。
merge が成功したら、自分のリモートにも反映します。
git push origin mainリモート設定の確認
Section titled “リモート設定の確認”最終的なリモート設定は以下のようになります。
origin https://github.com/you/new_repo.git (fetch)
origin https://github.com/you/new_repo.git (push)
upstream https://github.com/someone/original_repo.git (fetch)
upstream https://github.com/someone/original_repo.git (push)| リモート名 | 指すリポジトリ | 用途 |
|---|---|---|
origin | 自分のリポジトリ | 日常の push / pull |
upstream | 元のテンプレート | 更新の取り込み |
トラブルシューティング
Section titled “トラブルシューティング”URL を間違えてリモートを追加してしまった
git remote set-url origin https://github.com/you/correct_repo.gitブランチ名の不一致(main vs master)
# ブランチ名を main に統一
git branch -M main
git push -u origin mainpush が拒否された(リモートの方が新しい)
git pull --rebase upstream main認証エラーが出た
HTTPS から SSH に切り替えると解決することがあります。
git remote set-url origin git@github.com:you/new_repo.git💡 作業前に新しいブランチを切ると、万が一の失敗に備えられます。
git checkout -b feature/backupでバックアップブランチを作る習慣をつけましょう。
| 手順 | コマンド |
|---|---|
| テンプレートをクローン | git clone <URL> |
| オリジナル接続を解除 | git remote remove origin |
| 自分用リポジトリを紐付け | git remote add origin <URL> |
| 初期コミット&push | git push -u origin main |
| アップストリーム登録 | git remote add upstream <URL> |
| 更新取り込み | git fetch upstream → git merge upstream/main |
Q. git init は必要ですか?
クローンしたリポジトリにはすでに .git フォルダがあるため、git init は不要です。git init が必要なのは、まったく新しいプロジェクトをゼロから始める場合だけです。
Q. upstream は必ず設定する必要がありますか?
テンプレートの更新を取り込む予定がない場合は不要です。ただし、設定しておくと後で便利なので、セットアップ時に一緒に登録しておくことを推奨します。
Q. git push -u origin main の -u は何ですか?
-u は --set-upstream の省略形で、ローカルブランチとリモートブランチの追跡関係を設定します。一度設定すると、次回以降は git push だけで同じリモートに push できます。