コンテンツにスキップ
X

リポジトリのクローンとカスタマイズ

テンプレートや既存のプロジェクトをベースに、自分専用のリポジトリを作る方法を解説します。origin(自分のリポジトリ)と upstream(元のリポジトリ)の関係を正しく理解することで、安全にカスタマイズと更新の取り込みができるようになります。

対象読者: GitHub の基本操作(アカウント作成・SSH設定)を済ませた方

学習時間の目安: 読了 15分 + 実践 15分

前提知識: GitHub アカウントと SSH 鍵の設定 が完了していること

  • Git がインストール済み
  • GitHub アカウントを作成済み
  • VS Code などのターミナルが使える環境

プライベートリポジトリを作成する

Section titled “プライベートリポジトリを作成する”

まず、自分用の新しいリポジトリを GitHub に作成します。

  1. GitHub にログイン
  2. 右上の「」→「New repository」をクリック
  3. Repository name に名前を入力(例: your-repo-name
  4. Private を選択(公開したい場合は Public
  5. 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

最終的なリモート設定は以下のようになります。

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元のテンプレート更新の取り込み

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 main

push が拒否された(リモートの方が新しい)

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>
初期コミット&pushgit push -u origin main
アップストリーム登録git remote add upstream <URL>
更新取り込みgit fetch upstreamgit 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 できます。