Git と仲良くなりたい技術三課の手塚です。 プッシュやマージが無事通ることを祈る毎日ですが、共同作業を行う以上、コンフリクト等の処理は避けて通れないようです。 今回はそんな時の切り分けに役立つかもしれない、Git 検証環境の作成方法を紹介します。
概要
自前でリモートリポジトリを作成し、自分だけの Git 検証環境を作成します。
- 準備
- リポジトリ作成
local
にファイル追加remote.git
にプッシュ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 sabaDate: 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 sabaDate: 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