はじめに
Git リポジトリのクローンは、開発者にとって欠かせないスキルです。非公開リポジトリを扱う場合、コードにアクセスするために認証が必要になることがあります。この実験では、ユーザー名とパスワード認証を使って Git リポジトリをクローンする手順を説明します。リモートリポジトリへ安全にアクセスできるよう、正しい構文とセキュリティ上の注意点を学びます。
Git とリポジトリのクローンについて
このステップでは、認証が必要なリポジトリを扱う前に、Git とは何か、クローンとは何かを学びます。
Git とは
Git は、ソフトウェア開発中のソースコードの変更を追跡する分散型バージョン管理システムです。複数の開発者が、互いの変更を上書きせずに同じプロジェクトで作業できます。
Git の主な概念は次のとおりです。
- リポジトリ(Repository):プロジェクトとその履歴を保存する場所
- コミット(Commit):特定の時点におけるプロジェクトのスナップショット
- ブランチ(Branch):独立して開発できる、リポジトリの並行したバージョン
- リモート(Remote):サーバー(GitHub、GitLab、Bitbucket など)上にホストされたリポジトリ
Git のクローンとは
Git リポジトリのクローンとは、リモートリポジトリのコピーをローカルマシンに作成することです。リポジトリをクローンすると、すべてのファイル、ブランチ、コミット履歴がダウンロードされます。これにより、ローカルでプロジェクトを作業し、後から変更をリモートリポジトリにプッシュできます。
Git のインストールを確認する
作業を始める前に、Git がシステムにインストールされていることを確認します。ターミナルを開き、次のコマンドを実行してください。
git --version
次のような出力が表示されます。
git version 2.34.1
この出力が表示されれば、Git がインストールされ、使用できる状態です。次のステップでは、認証を使ってリポジトリをクローンする構文を確認します。
Git クローンで使う認証方法
このステップでは、リモート Git リポジトリへの一般的な認証方法を確認し、特にユーザー名とパスワードによる認証について学びます。
一般的な認証方法
Git では、次のような認証方法を利用できます。
- ユーザー名とパスワードを使う HTTPS:Git ホスティングサービスのアカウント認証情報を使用します
- SSH キー:公開鍵と秘密鍵のペアを使用します
- Personal Access Token:パスワードの代わりに発行したトークンを使用します
- OAuth:サードパーティーサービスによる認可を使用します
HTTPS 認証の構文
この実験では、ユーザー名とパスワードを使う HTTPS 認証を扱います。ユーザー名を指定してリポジトリをクローンする基本的な構文は次のとおりです。
git clone https://username@repository-url.git
続いて、パスワードの入力を求められます。URL にユーザー名とパスワードの両方を含める方法もあります。
git clone https://username:password@repository-url.git
ただし、この方法ではパスワードがコマンドに表示され、シェルの履歴に保存される可能性があるため、安全性が低くなります。
セキュリティ上の注意点
パスワード認証を使う場合は、次の点に注意してください。
- 認証情報を他の人と共有しないでください
- 公共の場所でパスワードを入力するときは注意してください
- GitHub や GitLab など、多くの Git ホスティングサービスでは、パスワードの代わりに Personal Access Token を使うことが推奨されています
- パスワードを何度も入力せずに済むよう、認証情報のキャッシュを検討してください
認証方法を確認できました。次のステップでは、リポジトリをクローンする準備をします。
ユーザー名とパスワード認証を使って Git リポジトリをクローンする
このステップでは、ユーザー名とパスワード認証を使って Git リポジトリをクローンする操作を実際に行います。
作業ディレクトリを準備する
まず、リポジトリをクローンするプロジェクトディレクトリに移動します。
cd ~/project
リポジトリをクローンする
この演習では、ユーザー名 labex_user、パスワード labex_password を使ってテスト用リポジトリをクローンします。リポジトリの URL は http://localhost:8000/git-server/test-repo.git です。このローカル HTTP サーバーは実験環境内に隔離されているため、パスワード入力を試すことができます。実際のリモートリポジトリには HTTPS を使用してください。
次のコマンドを実行して、リポジトリをクローンします。
git clone http://labex_user@localhost:8000/git-server/test-repo.git
パスワードを求められたら、labex_password と入力してください。
上記のコマンドで問題が起きた場合は、ユーザー名とパスワードをまとめて指定する方法もあります。ただし、実際の運用では安全性が低いため注意してください。
git clone http://labex_user:labex_password@localhost:8000/git-server/test-repo.git
期待される出力
クローンコマンドを実行すると、次のような出力が表示されます。
Cloning into 'test-repo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (3/3), done.
クローンしたリポジトリを確認する
リポジトリが正常にクローンされたことを確認するため、新しく作成されたディレクトリの内容を表示します。
ls -la test-repo
README.md ファイルと .git ディレクトリを含む、リポジトリの内容が表示されます。
total 16
drwxr-xr-x 3 labex labex 4096 Jul 15 12:34 .
drwxr-xr-x 10 labex labex 4096 Jul 15 12:34 ..
drwxr-xr-x 8 labex labex 4096 Jul 15 12:34 .git
-rw-r--r-- 1 labex labex 16 Jul 15 12:34 README.md
これでリポジトリをクローンできました。内容を確認し、作業を始められます。
クローンしたリポジトリを確認して作業する
このステップでは、クローンしたリポジトリの内容を確認し、README ファイルに簡単な変更を加えます。
リポジトリのディレクトリに移動する
まず、クローンしたリポジトリに移動します。
cd ~/project/test-repo
リポジトリの内容を表示する
リポジトリの内容を表示するには、ls コマンドを使います。
ls -la
README.md ファイルと .git ディレクトリが表示されます。
total 16
drwxr-xr-x 3 labex labex 4096 Jul 15 12:34 .
drwxr-xr-x 10 labex labex 4096 Jul 15 12:34 ..
drwxr-xr-x 8 labex labex 4096 Jul 15 12:34 .git
-rw-r--r-- 1 labex labex 16 Jul 15 12:34 README.md
README.md ファイルを表示する
README.md ファイルの内容を確認します。
cat README.md
ファイルには次の内容が記載されています。
## Test Repository
Git の状態を確認する
リポジトリの状態を確認するには、git status コマンドを使います。
git status
master ブランチにいて、作業ツリーに変更がないことを示す次のような出力が表示されます。
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
コミット履歴を表示する
リポジトリのコミット履歴を確認するには、git log コマンドを使います。
git log
初回のコミットが表示されます。
commit abcdef1234567890abcdef1234567890abcdef12 (HEAD -> master, origin/master)
Author: LabEx User <labex@example.com>
Date: Mon Jul 15 12:34:56 2023 +0000
Initial commit
リポジトリに変更を加える
README.md ファイルに簡単な変更を加えます。
echo "This is a test repository for learning Git authentication." >> README.md
変更後の内容を表示します。
cat README.md
ファイルは次のようになります。
## Test Repository
This is a test repository for learning Git authentication.
これで、ユーザー名とパスワード認証を使って Git リポジトリをクローンし、その内容を確認して、ファイルを変更できました。実際の環境では、変更をコミットしてリモートリポジトリにプッシュします。その際にも認証が必要です。
まとめ
この実験では、次のことを学びました。
- Git の基本と、リポジトリのクローンの意味
- Git のさまざまな認証方法と、特にユーザー名とパスワードによる認証
- 正しい構文を使って、ユーザー名とパスワードで Git リポジトリをクローンする方法
- パスワード認証を使う際のセキュリティ上の注意点
- クローンしたリポジトリの内容を確認し、変更を加える方法
これらは、共同開発に携わる開発者にとって重要なスキルです。ユーザー名とパスワードによる認証は広く使われていますが、多くの Git ホスティングサービスでは、Personal Access Token や SSH キーなど、より安全な認証方法への移行が進んでいます。Git 認証の基本を理解すれば、さまざまな Git ベースのワークフローに効果的に取り組めます。



