如何使用用户名和密码身份验证克隆 Git 仓库

GitBeginner
立即练习

简介

克隆 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 的工作流程中高效工作。