はじめに
Git リポジトリのクローンは、開発者にとって不可欠なスキルです。プライベートリポジトリを扱う場合、コードにアクセスするために認証が必要になることがよくあります。この実験(Lab)では、ユーザー名とパスワード認証を使用して Git リポジトリをクローンするプロセスを説明します。リモートリポジトリへの安全なアクセスを確保するための適切な構文とセキュリティに関する考慮事項を学びます。
Git リポジトリのクローンは、開発者にとって不可欠なスキルです。プライベートリポジトリを扱う場合、コードにアクセスするために認証が必要になることがよくあります。この実験(Lab)では、ユーザー名とパスワード認証を使用して Git リポジトリをクローンするプロセスを説明します。リモートリポジトリへの安全なアクセスを確保するための適切な構文とセキュリティに関する考慮事項を学びます。
認証を使用してリポジトリをクローニングする前に、Git と、Git のコンテキストにおけるクローニングの意味を理解しましょう。
Git は、ソフトウェア開発中にソースコードの変更を追跡するのに役立つ分散型バージョン管理システムです。複数の開発者が、互いの変更を上書きすることなく、同じプロジェクトで作業することを可能にします。
Git の主な概念には以下が含まれます。
Git リポジトリのクローニングとは、リモートリポジトリのコピーをローカルマシンに作成することです。リポジトリをクローンすると、すべてのファイル、ブランチ、およびコミット履歴がダウンロードされます。これにより、ローカルでプロジェクトに取り組み、後で変更をリモートリポジトリにプッシュできます。
先に進む前に、Git がシステムにインストールされていることを確認しましょう。ターミナルを開き、以下を実行します。
git --version
次のような出力が表示されるはずです。
git version 2.34.1
これにより、Git がインストールされ、使用できる状態であることが確認されます。次のステップでは、認証を使用したリポジトリのクローニングの構文を調べます。
Git リポジトリをクローニングする際、リモートリポジトリにアクセスするための認証方法はいくつかあります。ユーザー名とパスワード認証に焦点を当てて、最も一般的な認証方法を説明します。
Git は、いくつかの認証方法をサポートしています。
この実験(Lab)では、ユーザー名とパスワードを使用した HTTPS 認証に焦点を当てます。ユーザー名認証を使用してリポジトリをクローニングするための基本的な構文は次のとおりです。
git clone https://username@repository-url.git
その後、システムはパスワードの入力を求めます。URL にユーザー名とパスワードの両方を含める代替構文は次のとおりです。
git clone https://username:password@repository-url.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 ファイルの内容を調べてみましょう。
cat README.md
ファイルには次のように記述されているはずです。
## Test Repository
リポジトリのステータスを確認するには、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 ホスティングサービスは、パーソナルアクセストークンや SSH キーなどの、より安全な認証方法に移行しています。Git 認証の基本を理解することで、あらゆる Git ベースのワークフローを効果的に使用できるようになります。