🕌

GitHub のリポジトリを GitLab に複製してカスタマイズ・運用する方法

2025/01/17に公開

この記事では、GitHub のリポジトリを GitLab に fork (= 複製) して、カスタマイズや CI/CD 機能を活用する方法を説明します。

モチベーション

  • GitHub のオープンソースプロジェクトを参照しつつ、自社用にカスタマイズしたい。
  • GitHub プロジェクトを基にしながら、GitLab の強力な CI/CD 機能を活用したい。

リモートリポジトリの役割

GitHub リポジトリ

  • 役割: オープンソースプロジェクトの情報源として利用し、変更を取り込むための参照用リポジトリ
  • リモート名: upstream

GitLab リポジトリ

  • 役割: カスタマイズや CI/CD パイプラインの管理を行う作業用リポジトリ
  • リモート名: origin

手順

1. GitHub リポジトリをクローンする

まず、GitHub リポジトリをローカルにクローンしてください。

git clone https://github.com/username/repository.git
cd repository

2. GitHub リポジトリを upstream として設定する

既存のリモートリポジトリを確認してください。

git remote -v

出力例:

origin  https://github.com/username/repository.git (fetch)
origin  https://github.com/username/repository.git (push)

既存の origin を削除し、新しいリモート名 upstream を追加してください。

git remote remove origin
git remote add upstream https://github.com/username/repository.git

設定を再確認してください。

git remote -v

出力例:

upstream  https://github.com/username/repository.git (fetch)
upstream  https://github.com/username/repository.git (push)

3. GitLab に新しいリポジトリを作成する

  1. GitLab にログインします。
  2. [New Project] をクリック。
  3. [Create a blank project] を選択。
  4. リポジトリに名前を付けます (GitHub リポジトリ名と同じにすると分かりやすい)。
  5. プロジェクトを作成します。

4. GitLab リポジトリを origin として追加する

作成した GitLab リポジトリをリモートリポジトリとして設定してください。

git remote add origin https://gitlab.com/your-username/your-gitlab-repository.git

設定を確認してください。

git remote -v

出力例:

upstream  https://github.com/username/repository.git (fetch)
upstream  https://github.com/username/repository.git (push)
origin  https://gitlab.com/your-username/your-gitlab-repository.git (fetch)
origin  https://gitlab.com/your-username/your-gitlab-repository.git (push)

運用方法

1. ローカルで変更したら GitLab にプッシュする

ローカルで変更を加えたら、以下のコマンドで GitLab にプッシュしてください。

git push origin <branch-name>

2. GitHub に変更があったら GitLab に反映する

GitHub のリポジトリに変更があった場合、それを手動で GitLab に同期してください。

# GitHub から最新の変更を取得
git fetch upstream
git merge upstream/<branch-name>

# GitLab に変更をプッシュ
git push origin <branch-name>

Discussion