今回は、ローカルでのGitリポジトリを構築したいと思います。構成としては、Gitlab Community Editionでリポジトリを構築して、VSCodeから接続する形です。
Gitlab Community Edition
Gitlabといえばオンラインの有償ツールという印象ですが、無料版のCommunity Editionが存在します。ライセンスはMITライセンスです(*1)。
Gitlab Community EditionはSaasではなく、自前でサーバーを構築する形となります。主にLinux向けの提供となるため、windowsをご利用の方はDocker経由での利用となりそうです。今回は、手元にUbuntu環境があったので、そこに入れていきたいと思います。
インストール
まず、以下のコマンドでGitlabをインストールします。
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
sudo apt install -y gitlab-ce
sudo gitlab-ctl reconfigure
インストールに成功したら、初期ユーザー「root」のパスワードを以下のコマンドで確認します。
sudo cat /etc/gitlab/initial_root_password
Gitlabにアクセスするには、以下のURLにブラウザから接続します。
インストールに成功していると、以下のようなログイン画面が表示されるので、ユーザー名「root」、パスワードは上記で確認した値を入力します。

※ アクセスに失敗する場合、以下のコマンド等でファイアーウォール設定を見直してみてください
# ファイアーウォール設定の確認
sudo ufw status
# SSH(22)/HTTP(80)/HTTPs(443)を開ける
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
# ファイアーウォール有効化
sufo ufw enable
HTTPS接続の有効化(サーバー側)
ブラウザアクセスする分にはHTTPだけつながれば大丈夫なのですが、後述のGitでの接続にはHTTPS接続が必須となります。今回はローカルIPアドレス「192.168.2.184」にサーバーを配置して、IPアドレスで接続+証明書作成を行います。
※ 以下手順では、簡略化のために自己証明書を利用します。商用利用の際には認証局から証明書を発行していただくことをお勧めします。
-
HTTPS通信に必要な自己証明書の設定ファイルを作成します。以下のファイル「san.cnf」をカレントディレクトリに作成します。
[req] default_bits = 2048 prompt = no default_md = sha256 distinguished_name = dn x509_extensions = v3_req [dn] C = JP ST = Tokyo L = Chiyoda O = Example OU = IT CN = 192.168.2.184 [v3_req] subjectAltName = @alt_names [alt_names] IP.1 = 192.168.2.184 -
以下のコマンドを発行して、上記設定ファイルをもとに自己証明書を作成します。
openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ -keyout server.key -out server.crt \ -config san.cnf -extensions v3_req -
自己証明書をGitlabのフォルダに配置します。
sudo mkdir -p /etc/gitlab/ssl sudo chmod 700 /etc/gitlab/ssl sudo cp ./server* /etc/gitlab/ssl -
Gitlabの設定を変更します。※以下はnanoエディタを利用する例ですが、管理者権限で実行したエディタであれば何でもOKです
sudo nano /etc/gitlab/gitlab.rb修正内容は以下の通りです。
external_url 'https://192.168.2.184' nginx['redirect_http_to_https'] = true nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key"その後、以下コマンドでGitLabサーバーに設定を反映させます。
sudo gitlab-ctl reconfigure
HTTPS接続の有効化(クライアント側)
-
上記で作成した「server.crt」を、VSCode利用端末に複製します。
-
自己証明書「server.crt」をインストールします。以下はwindowsでのインストールの流れです。
-
「server.crt」をダブルクリックして開いた画面で、「証明書のインストール」ボタンを押下します。

-
「現在のユーザー」を選択して、「次へ」ボタンを押下します。

-
「証明書をすべて次のストアに配置する」を選択し、「参照」ボタンを押下して、「信頼されたルート証明機関」を選択します。その後、「次へ」ボタンを押下します。

-
確認画面が表示されるので、「完了」ボタンを押下します。
-
ブラウザで「https://192.168.2.184」にアクセスして、ログイン画面が表示されれば完了です。HTTPと同様のユーザー名/パスワードでログインしてください。
※「保護されていない通信」という文字は表示されてしまいます。

初期設定
ログインに成功すると、以下のような画面になります。

日本語化
まずは、日本語化します。画面右上のアイコンをクリックして、「Preferences」を選択、その後表示された画面で「Localization – Language」で、日本語を選択します。選択後、ページを下にスクロールして「Save Changes」ボタンを押下して保存します。

ブラウザで再読み込みすると、日本語ページに代わっています。
アクセストークン作成
-
画面右上のアイコンから「設定」を選択します。
-
表示されたユーザー設定画面の、左側メニューで「アクセス – パーソナルアクセストークン」を選択して、「新しいトークンを追加」ボタンを押下します。

-
トークン設定を入力して、「トークンを生成」ボタンを押下します。
- トークン名:適当でOK
- 有効期限:デフォルトは当日のみのため、最大である1年後を設定します
- スコープを適用:「api」のみ選択します。

-
パーソナルアクセストークン画面に、「自分のトークン」が表示されるようになるため、コピーしておきます。

グループ作成
次にグループを作成します。グループはユーザーにまとまりで、グループの下にプロジェクト(リポジトリ)が存在する構造になります。
-
画面左上のきつねアイコンを押下して、表示されるメニューから「グループ」を選択します。

-
グループ画面の「新しいグループ」ボタンを押下して、表示された画面で「新しいグループを作成」を選択します。

-
グループ名などを入力し、「グループを作成」ボタンを押下します。

プロジェクト作成
次にプロジェクトを作成します。プロジェクトの中にGitリポジトリ等を構築していくことになります。
-
「プロジェクトを作成」ボタンを押下します。

-
プロジェクトの作成方法は「空のプロジェクトの作成」を選択します。

-
最後にプロジェクト名等を設定します。今回はテスト用に以下のように入力しました。

-
成功すると、以下のような画面が表示されます。

GitLab ↔ VSCode連携
次に、VSCodeと連携していきます。動作確認時は別PCのVSCodeからアクセスしていますが、localhost上でも同様の操作で対応できると思います。
-
VSCodeを開き、以下の拡張機能をインストールします。
- GitLab

-
拡張機能をインストールすると、VSCodeの左メニューにGitLabのきつねアイコンが追加されます。アイコンをクリックして、「Authenticate to GitLab instance」ボタンを押下します。

-
コマンドパレットに選択肢が表示されるので、「Mannually enter instance URL」を選択します。

-
GitLabをインストールしたサーバーを指定します。
※画像を取り忘れたのでlocalhostになっていますが、「https://192.168.2.164」を設定します。

-
トークンはすでに作成したので、「Enter an existing token The token must have ‘api’ scope.」を選択し、続く入力欄にGitLab上で取得したアクセストークンを貼り付けます。

-
認証に成功するときつねアイコンが一つ増えます。

Git連携
最後にGitレポジトリに対して、VSCodeからファイルをコミットしていきます。
-
クライアントPC(VSCodeを利用している端末)にGitが入っていない場合、Gitをインストールします。windowsの場合は以下からインストールできます。(選択肢が多いですが、わからない場合はすべてデフォルトで進めます)
- Git for windows
インストール後、VSCodeのコンソールを開き、以下のコマンドを実行して、gitの初期設定を完了させます。git config --global user.name (gitログ上に残る名前) git config --global user.email (gitログ上の残るメールアドレス) git config --global --list
- Git for windows
-
Gitがインストールされた状態でVSCodeを開いて、ソース管理タブを開き、以下のような状態になっていれば、VSCode上でGitが利用可能です。

-
「リポジトリを初期化する」ボタンを押下します。
-
表示された画面で「リポジトリ」タブの「…」から「クローン」を選択します。

-
コマンドパレットの選択肢から、「GitLab(https://192.168.2.164 – root)」を選択します。

-
GitLab上で作成したグループとプロジェクトが表示されるので、対象の行を選択します。

-
接続方式を聞かれるので「https://」で始まる行を選択します。

-
「開く」ボタンを選択すると、サーバー上のファイルがローカルにダウンロードされます。

-
初期状態では「README.md」だけが存在しています。コミットできるか確認するため、ここにファイル「test00」を追加します。

-
画面左の「ソース管理」アイコンから、Git画面に移動します。「test00」の右にある「+」を押下して、ステージング状態にします。

-
コミットコメントとして「test00を追加」と記載し、コミットボタンを押下します。

-
ここまでで、ローカルGitリポジトリへのコミットは完了です。最後にGitLabサーバー上のリポジトリにコミットするため、「変更の同期」ボタンを押下します。

-
確認ダイアログは「OK」ボタンを押下します。

-
ブラウザでGitLabの対象のプロジェクトを開き、「test00」が追加されていれば成功です

