gitを使用してローカル環境で管理していたリポジトリを別サーバに共有のリモートリポジトリとして使用できるようにしてみましょう。リモートリポジトリとして構築すると他のマシンからもリポジトリが使用できるようになります。
記事の目次
使用環境
- Ubuntu 18.04.3 Desktop
- git version 2.17.1
ローカルのリポジトリの構築
以下の記事を参考にしてローカルのリポジトリを構築します。
リモートリポジトリの作成
リモートリポジトリを構築するマシン上で、空のリモートリポジトリを作成します。「git init」コマンドは、ローカルのときと異なり、「--bare --shared」のオプションを使用します。
mkdir -p ~/repo-git/sample/sample001.git $ git init --bare --shared Initialized empty shared Git repository in /home/admin001/repo-git/sample/sample001.git/
ローカルのリポジトリにリモートリポジトリの情報を登録
ローカルのリポジトリの内容をリモートリポジトリに反映します。ローカルのリポジトリにリモートのリポジトリを「git remote add origin」コマンドで登録します。以下は、リモートリポジトリとの接続にSSHを使用する場合の例になります。(接続ユーザ:admin001,リモートリポジトリのサーバ名:gitsrv001)
$ git remote add origin admin001@gitsrv01:repo-git/sampel/sample001.git $ git remote -v origin admin001@gitsrv01:repo-git/sample/sample001.git (fetch) origin admin001@gitsrv01:repo-git/sample/sample001.git (push)
ローカルのリポジトリの内容をにリモートリポジトリに反映
ローカルのリポジトリの内容をにリモートリポジトリに反映させます。以下完了するとリモートリポジトリが完成です。
$ git push origin master admin001@gitsrv01's password: Counting objects: 6, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (6/6), 472 bytes | 472.00 KiB/s, done. Total 6 (delta 0), reused 0 (delta 0) To gitsrv01:repo-git/sample/sample001.git * [new branch] master -> master
ローカルのリポジトリの変更内容をにリモートリポジトリに反映
ローカルのリポジトリの内容を変更したら、「git push」コマンドでリモートリポジトリを更新します。
$ git push admin001@gitsrv01's password: Counting objects: 3, done. Delta compression using up to 4 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 295 bytes | 295.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To gitsrv01:repo-git/sample/sample001.git 2e3d0a3..0708a93 master -> master
リモートリポジトリからローカルのリポジトリを構築
リモートリポジトリが構築できれば、「git clone」コマンドで新たにローカルのリポジトリを構築できます。これで、複数のローカルのリポジトリで更新を行いながら作業を行うことができるようになります。以下、カレントディレクトリにローカルリポジトリを作成していますが、ローカルリポジトリの配置先を指定しない場合は、リモートリポジトリ名から「.git」を除いた名前でローカルのリポジトリが作成されます。
$ mkdir -p ~/repo-git/sample/sample001_local $ cd ~/repo-git/sample/sample001_local $ git clone admin001@gitsrv01:repo-git/sample/sample001.git . Cloning into '.'... admin001@gitsrv01's password: remote: Counting objects: 6, done. remote: Compressing objects: 100% (2/2), done. remote: Total 6 (delta 0), reused 0 (delta 0) Receiving objects: 100% (6/6), done.
おわりに
リモートリポジトリを構築することにより、多数のマシンとライブラリを共有することができるようになりました。これは、プログラム開発環境やシステム構築環境を整備するための強力なライブラリ基盤が整ったことになります。