Git/GitHub

Git を入れる(ホストと Docker)

8

Git を入れる(ホストと Docker) — Git Tips

Git は変更履歴を分岐・合流できる分散型のバージョン管理です。入れ方はホストに入れるか、Docker コンテナ内で apt install するかの大きく2通りです。

参考(公式)


目次

  1. Git とは何か
  2. ホストに Git for Windows を入れる
  3. Docker Desktop を入れる(概要のみ)
  4. Docker でコンテナ内に Git を入れる
  5. バージョンを確認する
  6. Docker が使えない場合のローカル代替
  7. うまくいかないとき

Git とは何か

Git は、ファイルの変更を「スナップショット」として記録するバージョン管理システムです。中央のサーバーが無くても手元だけで履歴を残せる 分散型 という点が、CVS や Subversion のような集中型のシステムと違うところです。

特徴 内容
記録単位 変更差分ではなく、その時点のスナップショット
動作場所 ローカルで完結(サーバー接続なしでも commit できる)
分岐 ブランチの作成・切り替えが軽量
分散型 各作業者が履歴の完全なコピーを持つ

インストール先の選択肢は 2 つです。

選択肢 向いている人
ホスト(Git for Windows) 手元の任意のフォルダで普段からすぐ Git を使いたい人
Docker コンテナ OS を汚さず、apt install からの練習を何度も繰り返したい人

どちらか一方だけでも構いませんし、両方を用途に応じて使い分けても問題ありません。以降の記事のコマンド例は、どちらの環境でもそのまま動きます。


ホストに Git for Windows を入れる

Windows のホストに直接インストールする場合は Git for Windows を使います。

  1. gitforwindows.org を開き、Download からインストーラーを取得する
  2. インストーラーを実行し、基本的にはウィザードの既定値のまま Next で進める
  3. 完了したら、新しいターミナル(PowerShell または同梱の Git Bash)を開く
  4. git --version で動作確認する(次の バージョンを確認する を参照)
git --version

Git for Windows には Git Bash という bash 互換ターミナルが同梱されます。Linux 系のチュートリアルに出てくる bash のコマンド例は、この Git Bash でそのまま動くことが多いです。PowerShell を使う場合、Git の各コマンド自体(git status など)は同じですが、ファイル操作コマンド(lsdircatGet-Content など)はシェルごとに異なる点に注意してください。

インストール直後に git が見つからないとき

インストーラー実行中のターミナルは PATH の変更を反映していないことがあります。ターミナルを一度閉じて、新しく開き直してから再確認してください。


Docker Desktop を入れる(概要のみ)

Docker を使ったコンテナ練習環境(後述)を使う場合は、事前に Docker Desktop が必要です。インストール手順の詳細な解説は Docker の教材側に譲り、ここでは概要だけを示します。

  1. Docker Desktop をダウンロードしてインストールする
  2. インストール後に Docker Desktop を起動し、タスクトレイのアイコンが「Running」になるまで待つ
  3. ターミナルで動作確認する
docker --versiondocker compose version

Docker Desktop の詳しい設定(WSL2 連携、リソース割り当てなど)や日常的な操作(build / run / ps など)は Docker 単体のトラブルシュートやチュートリアルを参照してください。ここで必要なのは「Git を動かす入れ物として起動できる」ところまでです。


Docker でコンテナ内に Git を入れる

リポジトリの setup フォルダ には、Ubuntu コンテナ上で Git を apt install するところから練習できる Docker Compose 環境が用意されています。イメージには最初から Git は入っておらず、コンテナを起動したあとで自分の手でインストールする構成になっています。

まずホスト側で、setup フォルダに移動してコンテナをビルド・起動します。

cd .\setupdocker compose builddocker compose up -ddocker compose exec ubuntu bash

期待する結果(例)

コマンド 出力の目安
docker compose build 末尾に Successfully built 相当のメッセージ
docker compose up -d Container ... Started
docker compose exec ubuntu bash プロンプトが root@...:/workspace# になる

プロンプトが変わったら、コンテナの中に入っています。ここから先はコンテナ内(bash)での作業です。

apt updateapt install -y gitgit --version

apt update はパッケージ一覧を最新化し、apt install -y git で Git 本体を導入します。コンテナは既定で root ユーザーなので sudo は不要です。

コンテナを終了して抜けるときは exit を実行します。コンテナ自体を止める・削除するコマンドはこの教材の別ファイル(setup フォルダの README)にまとまっているため、ここでは深く踏み込みません。


バージョンを確認する

インストール後は、必ずバージョン確認コマンドで導入を確かめます。ホストでもコンテナ内でも同じコマンドです。

git --version
git --version

期待する出力(例)

git version 2.43.0

バージョン番号は環境によって異なりますが、git version という文字列がエラーなく表示されれば導入は成功しています。


Docker が使えない場合のローカル代替

Docker Desktop が使えない、または使わない方針の場合は、OS ごとに Git を直接インストールします。

OS 方法
Windows ホストに Git for Windows を入れる を参照
macOS ターミナルで xcode-select --install、または Homebrewbrew install git
Linux(Debian / Ubuntu 系) sudo apt update && sudo apt install -y git

いずれの場合も、最後に git --version で確認する流れは共通です。この場合、以降の記事で「コンテナ内で」と書かれている部分は、そのまま手元のターミナルに読み替えて進められます。


うまくいかないとき

git が見つからない(git : 用語 'git' は... 認識されません など)

インストール直後の古いターミナルを使っていることが原因のほとんどです。ターミナルを新しく開き直してから、もう一度 git --version を実行してください。それでも直らない場合は、インストールをやり直します。

docker composeno configuration file provided と言う

docker-compose.yml が置かれているフォルダ以外で実行しています。setup フォルダへ移動してから実行してください。

cd .\setupdocker compose up -d

docker compose exec ubuntu bash でコンテナに入れない

コンテナが起動していない可能性があります。状態を確認してから起動します。

docker compose psdocker compose up -ddocker compose exec ubuntu bash

コンテナ内で apt installPermission denied になる

この教材のコンテナは既定ユーザーが root のため、通常は権限エラーにはなりません。エラーが出る場合は apt update を先に実行していない、あるいはコンテナに正しく入れていない可能性があります。プロンプトが root@...:/workspace# になっているか確認してください。

Git Bash と PowerShell で挙動が違う

Git 自体のサブコマンド(git status など)は Git Bash・PowerShell のどちらでも同じです。違いが出るのは ls / dircat / Get-Content、パスの区切り文字(/\)などシェル側のコマンドです。Git のコマンドで詰まったときは、シェルの違いではなく Git 自体の状態(作業ディレクトリ、.git の有無など)を先に確認してください。

コンテナを消したら Git の設定も消えた

この教材のコンテナは /workspace や Git の設定(~/.gitconfig)を永続化していない構成のため、docker compose downdocker compose down -v のあとに再度 up すると、Git のインストールからやり直しになることがあります。これは「毎回同じ手順を練習する」ための意図的な設計です。

シェア