简介
克隆 Git 仓库是开发者必备的技能。访问私有仓库中的代码时,通常需要进行身份验证。本实验将指导你使用用户名和密码身份验证克隆 Git 仓库。你将学习正确的命令语法和安全注意事项,确保安全访问远程仓库。
了解 Git 和仓库克隆
在使用需要身份验证的仓库之前,本步骤将介绍 Git 和克隆的含义。
什么是 Git?
Git 是一种分布式版本控制系统,可帮助你跟踪软件开发过程中源代码的变化。多个开发者可以使用 Git 协作开发同一个项目,而不会覆盖彼此的修改。
Git 的一些基本概念:
- 仓库:存放项目及其历史记录的位置
- 提交:项目在某个时间点的快照
- 分支:仓库的一个并行版本,可以独立开发
- 远程仓库:托管在服务器上的仓库版本,例如 GitHub、GitLab 或 Bitbucket 上的仓库
什么是 Git 克隆?
克隆 Git 仓库,就是在本地计算机上创建远程仓库的副本。克隆仓库时,所有文件、分支和提交历史都会下载到本地。这样,你就可以在本地处理项目,之后再将修改推送回远程仓库。
检查 Git 是否已安装
继续之前,先检查系统上是否已安装 Git。打开终端并运行:
git --version
你应该会看到类似这样的输出:
git version 2.34.1
这表示 Git 已安装,可以使用。下一步骤将介绍如何使用身份验证克隆仓库的命令语法。
Git 克隆的身份验证方式
本步骤将介绍远程 Git 仓库常见的身份验证方式,重点讲解用户名和密码身份验证。
常见的身份验证方式
Git 支持多种身份验证方式:
- 使用用户名和密码进行 HTTPS 身份验证:使用 Git 托管服务账户的凭据
- SSH 密钥:使用公钥和私钥对
- 个人访问令牌:使用生成的令牌代替密码
- OAuth:通过第三方服务授权
HTTPS 身份验证语法
本实验重点介绍使用用户名和密码进行 HTTPS 身份验证。使用用户名进行仓库克隆的基本语法如下:
git clone https://username@repository-url.git
随后,系统会提示你输入密码。另一种语法是在 URL 中同时填写用户名和密码:
git clone https://username:password@repository-url.git
不过,这种方式安全性较低,因为密码会显示在命令中,也可能被保存到 shell 历史记录里。
安全注意事项
使用密码身份验证时,请注意以下安全事项:
- 不要与他人分享凭据
- 在公共场所输入密码时要小心
- 许多 Git 托管服务(如 GitHub、GitLab)现在建议使用个人访问令牌代替密码
- 可以考虑使用凭据缓存,避免反复输入密码
了解身份验证方式后,下一步骤将准备克隆一个仓库。
使用用户名和密码克隆 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 托管服务正在转向更安全的身份验证方式,例如个人访问令牌或 SSH 密钥。了解 Git 身份验证的基础知识,有助于你在各种基于 Git 的工作流程中高效工作。



