【git init】リモートリポジトリ作成【bare】

記事タイトルとURLをコピーする

Git と仲良くなりたい技術三課の手塚です。 プッシュやマージが無事通ることを祈る毎日ですが、共同作業を行う以上、コンフリクト等の処理は避けて通れないようです。 今回はそんな時の切り分けに役立つかもしれない、Git 検証環境の作成方法を紹介します。

概要

自前でリモートリポジトリを作成し、自分だけの Git 検証環境を作成します。

  1. 準備
  2. リポジトリ作成
  3. local にファイル追加
  4. remote.git にプッシュ
  5. remote.git をクローン

1. 準備

Git が使える検証機を 1 つ用意します。

以降は Amazon EC2 の例です。 - 参考: Linux 仮想マシンの起動 / クラウドならアマゾン ウェブ サービス 【AWS 公式】

ログイン後、Git をインストールします。

sudo yum -y update
sudo yum -y install git

検証用ディレクトリ testdir を作成し、以降はこの中で検証します。

mkdir ~/testdir
cd ~/testdir

2. リポジトリ作成

ローカルリポジトリ local とリモートリポジトリ相当の remote.git を作成します。

git init local
git init --bare remote.git 

[ログ]

$ git init local
Initialized empty Git repository in /home/ec2-user/testdir/local/.git/
$ git init --bare remote.git 
Initialized empty Git repository in /home/ec2-user/testdir/remote.git/

git init はリポジトリの初期化コマンドです。これをリモートリポジトリとするには --bare オプションを加えます。 以上でリポジトリ作成は完了です。以下は簡単な動作確認になります。

3. local にファイル追加

local に移動します。

cd local

local 内で有効なユーザ名・メールアドレスを設定します。ユーザは shime saba さんとします。

git config --local user.name "shime saba"
git config --local user.email "shime.saba@example.com"

ファイル readme.md を追加し、ステージおよびコミットします。

touch readme.md
git add readme.md
git commit -m "1st commit"

[ログ]

$ git commit -m "1st commit"
[master (root-commit) c35965c] 1st commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 readme.md
$

[確認] shime saba さんのコミットログが見えること

$ git log
commit c35965cb4f4ed616bff3a5b5b9b6137c68087348 (HEAD -> master)
Author: shime saba 
Date:   Thu Aug 29 17:38:52 2019 +0900

    1st commit
$

4. remote.git にプッシュ

local の更新を remote.git にプッシュします。

git push -u ~/testdir/remote.git master

[ログ]

$ git push -u ~/testdir/remote.git master
Counting objects: 3, done.
Writing objects: 100% (3/3), 209 bytes | 209.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /home/ec2-user/testdir/remote.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from '/home/ec2-user/testdir/remote.git'.
$ 

5. remote.git をクローン

testdir に移動します。

cd ~/testdir

remote.git をクローンします。名前は local2 とします。

git clone remote.git local2

local2 へ移動します。

cd local2

[確認] shime saba さんが追加した readme.md があること

$ ls
readme.md

[確認] shime saba さんのコミットが見えること

$ git log
commit c35965cb4f4ed616bff3a5b5b9b6137c68087348 (HEAD -> master, origin/master, origin/HEAD)
Author: shime saba 
Date:   Thu Aug 29 17:38:52 2019 +0900

    1st commit
$ 

無事クローンできました。

local と同様、local2 にユーザ・メールアドレスを設定することで、local2 から remote.git の更新も可能です。

まとめ

これまでの手順のコピー&ペースト用コマンド一覧です。

# 1. 準備
# sudo yum -y update
# sudo yum -y install git
mkdir ~/testdir
cd ~/testdir

# 2. リポジトリ作成
git init local
git init --bare remote.git 

# 3. local を更新
cd ~/testdir/local
git config --local user.name "shime saba"
git config --local user.email "shime.saba@example.com"
touch readme.md
git add readme.md
git commit -m "1st commit"

# 4. remote.git にプッシュ 
git push -u ~/testdir/remote.git master

# 5. remote.git をクローン
cd ~/testdir
git clone remote.git local2

## クローン結果確認
cd ~/testdir/local2
ls
git status
git log

最後に

検証環境であれば、エラーの再現検証や切り分けを何度でも試すことができます。 また便宜上 EC2 の手順としましたが、Unix シェルで Git が動けばノート PC 単体で試せます。 Git ともっと仲良くなれますように!

以上

手塚 忠 (Tadashi Tetsuka) 記事一覧はコチラ

カスタマーサクセス部所属、2019 年 2 月入社のネットワークエンジニア。シリアルコンソールがマネジメントコンソールに変わったが、スイッチ愛は今も変わらず。 2023 Japan AWS Top Engineers (Networking), 2023 AWS ALL Certifications Engineers