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

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

はじめに

Git リポジトリのクローンは、開発者にとって不可欠なスキルです。プライベートリポジトリを扱う場合、コードにアクセスするために認証が必要になることがよくあります。この実験(Lab)では、ユーザー名とパスワード認証を使用して 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 は、いくつかの認証方法をサポートしています。

  1. HTTPS (ユーザー名とパスワード): Git ホスティングアカウントの資格情報を使用
  2. SSH キー: 公開鍵と秘密鍵のペアを使用
  3. パーソナルアクセストークン (Personal Access Tokens): パスワードの代わりに生成されたトークンを使用
  4. OAuth: サードパーティサービスによる認証を使用

HTTPS 認証構文

この実験(Lab)では、ユーザー名とパスワードを使用した HTTPS 認証に焦点を当てます。ユーザー名認証を使用してリポジトリをクローニングするための基本的な構文は次のとおりです。

git clone https://username@repository-url.git

その後、システムはパスワードの入力を求めます。URL にユーザー名とパスワードの両方を含める代替構文は次のとおりです。

git clone https://username:password@repository-url.git

ただし、この方法は、コマンドにパスワードが表示され、シェル履歴に保存される可能性があるため、セキュリティが低くなります。

セキュリティに関する考慮事項

パスワード認証を使用する場合は、次のセキュリティポイントに注意してください。

  • 資格情報を他の人と共有しないでください
  • 公共の場所でパスワードを入力する際には注意してください
  • 多くの Git ホスティングサービス(GitHub、GitLab)は、現在、パスワードの代わりにパーソナルアクセストークンを使用することを推奨しています
  • パスワードを繰り返し入力しないように、資格情報のキャッシュを検討してください

認証方法を理解したところで、次のステップでリポジトリをクローンする準備をしましょう。

ユーザー名とパスワードを使用した Git リポジトリのクローニング

基本を理解したところで、ユーザー名とパスワード認証を使用して Git リポジトリをクローンする実践的な演習を行いましょう。

ワークスペースの準備

まず、リポジトリをクローンするプロジェクトディレクトリに移動します。

cd ~/project

リポジトリのクローニング

この演習では、ユーザー名 labex_user とパスワード labex_password を使用してテストリポジトリをクローンします。リポジトリ URL は https://localhost/git-server/test-repo.git です。

リポジトリをクローンするには、次のコマンドを入力します。

git clone https://labex_user@localhost/git-server/test-repo.git

プロンプトが表示されたら、パスワード labex_password を入力します。

上記のコマンドで問題が発生した場合は、代替として、組み合わせた構文を使用できます(ただし、これは実際の使用ではセキュリティが低くなります)。

git clone https://labex_user:labex_password@localhost/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

これで、リポジトリを正常にクローンできたので、その内容を調べて、作業を開始できます。

クローンされたリポジトリの探索と操作

リポジトリを正常にクローンしたので、それを探索し、操作方法を学びましょう。

リポジトリディレクトリへの移動

まず、クローンされたリポジトリに移動します。

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

出力には、main ブランチにいて、ワーキングディレクトリがクリーンであることが示されるはずです。

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 ホスティングサービスは、パーソナルアクセストークンや SSH キーなどの、より安全な認証方法に移行しています。Git 認証の基本を理解することで、あらゆる Git ベースのワークフローを効果的に使用できるようになります。