ユーザー名とパスワード認証を使って Git リポジトリをクローンする方法

GitBeginner
オンラインで実践に進む

はじめに

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 ベースのワークフローに効果的に取り組めます。