LoginSignup
11
1

More than 1 year has passed since last update.

Gitlab のリポジトリを Github に fork して同期・運用

Last updated at Posted at 2021-09-20

オープンソース(本家)の Gitlab リポジトリ(upstream)を fork し,upstream のアップデートを自身の Github リポジトリ(origin)に手動で取得して同期し,運用する方法の備忘録です.詳しくは こちらの記事 を参照頂きたいのですが,記事内容の違いは本家が Github ではなく Gitlab であるため,fork を手動で行う点です.この方法は Gitlab だけでなく,一般に適用できます.
upstream の対象ブランチは master (永続ブランチ)とし,その純粋なコピーを originmaster で維持する方針とします.
origin では master から分岐した main を永続ブランチとして Github-flow で管理し,main から分岐した feature ブランチ(名前は適宜変更)で開発・修正を行い,Githubのプルリクエストで main にマージします.本家の master がアップデートされたら origin の master に同期し,main に merge します.

空の Github リポジトリを作成

Gitlab のリポジトリと同名の空のリポジトリを Github で作成しておきます.

Gitlab のリポジトリをローカルに取得

Gitlab リポジトリをローカルにクローンします.

git clone git@gitlab.com:<user-group>/<repo>.git
cd <repo>

origin と upstream を登録

Github(origin)と Gitlab(upstream)を登録します.Gitlab リポジトリをクローンしたため,その origin には Gitlab のリポジトリが設定されています.これを Github に変更します.

git remote set-url origin git@github.com:<user>/repo>.git
git remote add upstream git@gitlab.com:<user-group>/<repo>.git
git remote -v

upstream をローカルリポジトリに取得

upstream をローカルリポジトリに取得し,現在のブランチが意図したブランチであることを確認してから merge し,origin に push します.

git fetch upstream
git checkout master
git merge upstream/master
git push origin master

main ブランチを作成し,デフォルトブランチに設定

origin での永続ブランチとして,main ブランチを作成します.

git checkout -b main
git push origin main

この状態では origin (Github)のデフォルトリポジトリは master のままですので,main に変更します.
Github の当該リポジトリにおいて,Settings をクリックして現れる左側のメニューから Branches をクリックします.Default branch に現れる master の右端にある両方向矢印 をクリックするとボックスが現れます.その master プルダウンから main を選択し,update をクリックします.

Gitlab SSH接続エラーへの対応

Ubuntu 20.04LTS でGitlabへのSSH接続において,以下のようなエラーが現れるようになりました.

fatal: unable to access '': server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none

以下を実行したところ,解決しました.

sudo apt update
sudo apt install --reinstall ca-certificates
11
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
1