目录
前言
对于软件开发人员而言 Git 是日常工作中很重要的工具,不仅提高了开发的质量和效率,并且使得软件开发变得更加灵活、开放与协作。Git 不仅对软件开发人员有用,它的核心功能 — 版本控制,对于任何需要管理文档、项目或者创意作品的非开发人员也同样受益。
以下内容是简单对 Git 的介绍,以及安装与简单使用。
一、软件开发所面临的问题
在现代软件开发中,团队协作、代码管理和版本控制是必不可少的环节。在 Git 出现之前,开发人员常常面临诸多问题:代码丢失、版本混乱、协作冲突等。
Git 是一个分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,旨在帮助开发团队高效管理代码变更。下面我们将从开发中常见的几个问题出发,介绍 Git 如何解决这些问题。
问题一:代码备份与丢失风险 — 本地开发的风险
在没有版本控制的开发环境中:
- 代码仅存储在本地计算机上
- 硬件故障可能导致所有代码丢失
- 误删除文件无法恢复
- 无法追溯历史版本
🎯 开发成果面临永久丢失风险
Git 解决方案:分布式版本控制

Git 通过以下方式解决备份问题:
- 完整的代码仓库存储在本地和远程服务器
- 每次提交(commit)都保存完整快照
- 支持多备份(本地、远程服务器、团队成员的仓库)
- 历史记录完整可追溯
# 基本工作流程
git add . # 添加更改到暂存区
git commit -m "描述" # 提交到本地仓库
git push # 推送到远程仓库
🎈 分布式存储保障代码永不丢失
问题二:多人协作冲突 — 团队协作的挑战
当多人同时修改同一项目时:
- 无法知道谁修改了哪些文件
- 代码覆盖问题(后提交者覆盖前者)
- 合并代码困难且容易出错
- 缺乏代码修改历史记录
🎯 团队协作效率低下,冲突频发
Git 解决方案:分支与合并

Git 提供了强大的分支功能:
- 每个开发者有自己的独立分支
- 功能开发完成后合并到主分支
- 自动合并与冲突解决工具
- 清晰的代码修改历史记录
# 分支工作流程示例
git checkout -b feature/login # 创建并切换到新分支
# 开发新功能...
git add .
git commit -m "添加登录功能"
git checkout main # 切换回主分支
git merge feature/login # 合并功能分支
🎈 分支管理实现高效协作
问题三:版本回退与错误修复 — 版本管理的困境
在传统开发中:
- 无法轻松回退到之前可工作的版本
- 修复错误时可能引入新问题
- 难以确定问题引入的具体时间点
- 维护多个版本困难
🎯 错误修复困难,版本管理混乱
Git 解决方案:历史追踪与回退

Git 提供完整的版本历史:
- 每个提交(commit)都是项目的一个快照
- 可以查看任意时间点的代码状态
- 轻松回退到之前的版本
- 使用分支进行错误修复
# 版本控制常用命令
git log # 查看提交历史
git checkout <commit-hash> # 切换到特定提交
git revert <commit-hash> # 撤销特定提交的更改
git reset --hard HEAD~1 # 回退到上一个提交
🎈 完整历史记录支持安全回退
二、Git 的简介
文档:https://git-scm.com/book/zh/v2

Git 最初是由 Linux 内核的开发者 Linus Torvalds 创建的,目的是为了更好地管理 Linux 内核源代码的开发。Git 的设计目标是速度、简单的设计和对非线性开发的支持。
在 Git 之前,许多版本控制系统是集中式的,比如:SVN,这意味着所有开发人员都必须连接到一个中央服务器来提交代码、查看更改等。Git 通过提供一个完全分布式的系统解决了这个问题,每个开发者都可以在自己的本地机器上拥有完整的代码历史记录,从而可以在没有中央服务器的情况下工作。这使得开发者可以在本地执行大部分操作,而不需要网络连接。
Git 现在是全球最流行的版本控制系统,被广泛用于各种规模的项目,从小型个人项目到大型企业级项目。
Git 的核心特性:
-
分布式架构:
- 每个开发者的本地机器上都有一个完整的版本库,包括完整的提交历史和代码。
- 这意味着即使没有网络连接,开发者也可以进行版本控制操作。
-
分支管理:
Git支持快速创建和合并分支,使得并行开发和实验性开发变得简单。
-
数据完整性:
Git使用SHA-1散列算法保护代码和历史记录的完整性,确保数据不会在传输过程中损坏。
-
非线性开发:
- 开发者可以以非线性方式工作,轻松合并和重组代码。
-
灵活的工作流程:
Git支持多种工作流程,如集中式工作流、功能分支工作流、Gitflow工作流等。
-
性能:
Git在处理大量文件和大项目时表现出色,具有很高的性能。
-
跨平台:
Git可以在多种操作系统上运行,包括Linux、Mac OS和Windows。
-
社区和工具支持:
Git拥有一个活跃的社区和丰富的工具,如GitHub、GitLab和Bitbucket,这些平台提供了额外的功能,如代码托管、代码审查、持续集成等。
Git 的优势:
- 分布式架构:提供了更好的数据备份和灾难恢复能力。
- 非线性开发:支持快速、简便的分支创建和合并。
- 数据完整性:使用
SHA-1散列算法确保代码和历史记录的完整性。 - 灵活的工作流程:适应不同的开发模式和团队需求。
- 性能:在处理大量文件和项目时表现出色。
- 跨平台:支持多种操作系统。
- 社区和工具支持:拥有丰富的资源和工具,如
GitHub、GitLab和Bitbucket。
三、Git 的工作流程
Git 的核心流程围绕四个关键区域:工作目录、暂存区、本地仓库和远程仓库

- 工作区(Workspace):工作目录是项目在本地文件系统上的目录,包含项目的所有文件和子目录。在这里可以创建、修改和删除文件,这些更改最初只存在于工作目录中。
- 暂存区(Index / Stage):也称为索引,是准备下次提交的更改的暂存区域。它允许选择性地添加要包含在下一次提交中的更改,而不是必须提交所有修改。
- 仓库区 / 本地仓库(Repository):位于计算机上,包含项目的完整历史和所有版本。当提交更改时,
Git会获取暂存区中的内容并创建一个永久快照存储在本地仓库中。 - 远程仓库(Remote):远程仓库通常位于服务器上(如
GitHub、GitLab),是团队成员共享代码的地方。可以将本地提交推送到远程仓库,也可以从远程仓库拉取他人的更改。
Git 的基本工作流程:
- 初始化仓库(Init):在本地创建一个新的
Git仓库。 - 克隆仓库(Clone):从远程仓库克隆代码到本地。
- 添加文件(Add):将文件添加到暂存区,准备下一次提交。
- 提交更改(Commit):保存项目历史和文件的更改。
- 查看状态(Status):查看文件的状态,了解哪些文件被修改了但还没有提交。
- 分支操作(Branch):创建、切换和合并分支。
- 拉取更新(Pull):从远程仓库获取最新的代码更改。
- 推送更改(Push):将本地的更改推送到远程仓库。
- 查看日志(Log):查看项目的提交历史。
- 撤销操作(Reset, Revert):撤销错误的提交。
四、Git 的下载与安装
官网下载地址:https://git-scm.com/downloads

根据自己电脑系统下载安装包,目前大部分人的电脑都是 64 位的,在 Windows 上可以直接下载 64-bit Git for Windows Setup.


下载完成之后,双击安装包,进入安装导向界面,点击 Next

指定安装目录,再点击 Next

一路点击 Next












等待安装

安装完成,点击 Finish

安装完成之后在电脑任意目录下,右键鼠标,如果能看到以下两个菜单则说明 Git 安装成功

PS:如果右键没有看到,可能在 显示更多选项 的菜单中
- Git GUI:Git 提供的图形界面工具
- Git Bash:Git 提供的命令行工具
点击 Open Git Bash here,可以打开 Git 命令客户端

操作到这里就证明 Git 已经安装成功了
五、Git 中的远程仓库
1. 远程仓库的概述
前面介绍过远程仓库是托管在远程服务器上的 Git 仓库,通常用于团队协作和代码备份。与本地仓库不同,远程仓库位于中央服务器(如GitHub、GitLab 等)上,允许多个开发者共享代码。
为了能在任意 Git 项目上协作,你需要知道如何管理自己的远程仓库。 远程仓库是指托管在因特网或其他网络中的你的项目的版本库。 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写。 与他人协作涉及管理远程仓库以及根据需要推送或拉取数据。 管理远程仓库包括了解如何添加远程仓库、移除无效的远程仓库、管理不同的远程分支并定义它们是否被跟踪等等。
市场上有多种 Git 远程仓库托管服务,每种都有其特点和优势:
-
GitHub
- 最流行的Git托管平台,拥有庞大的开源社区和丰富的协作功能。
- 网址: www.github.com
-
GitLab
- 提供强大的
CI/CD功能,支持自托管,适合企业级应用。 - 网址: www.gitlab.cn
- 提供强大的
-
Bitbucket
- 与Jira紧密集成,提供免费私有仓库,适合专业团队。
- 网址: www.bitbucket.org
-
Azure Repos
- Microsoft Azure DevOps的一部分,提供企业级Git托管服务。
- 网址:azure.microsoft.com/zh-cn/
-
Gitee
- 码云是全国最大的开源项目托管平台,良心平台,速度快,提供免费私有库。
- 网址:www.gitee.com
2. 远程仓库的创建
这里以 Gitee 为例,教大家如何在托管平台上申请和使用远程仓库。
首先可以点击以下链接进入 Gitee 的官网
Gitee 官网:www.gitee.com

如果有账号直接登录即可,没有就注册一个

设置个人信息

进入工作台

接下来我们就可以创建自己的仓库,点击 创建我的仓库

填写好 仓库名称、路径、开源/私有 等关键信息之后即可点击 创建,当然也可以配置 初始化仓库、模板、分支模型等信息
远程仓库创建完成

3. HTTPS 和 SSH 协议
在 Git 中与远程仓库(如 GitHub、GitLab、Bitbucket 等)通信时,HTTPS 和 SSH 是两种最常用的协议。它们各有优缺点,适用于不同的场景。下面详细介绍它们:
HTTPS(超文本传输安全协议):
-
核心原理:
- 基于标准的
Web HTTPS协议(端口443)。 - 使用用户名和密码(或更常见的,个人访问令牌 -
Personal Access Token, PAT)进行身份验证。 - 所有通信都通过
SSL/TLS加密,确保传输过程中的数据安全。
- 基于标准的
-
工作流程 (典型):
git clone https://github.com/username/repo.git- 提示输入用户名和密码(或访问令牌)。
- 本地
Git客户端将凭据发送给远程服务器。 - 服务器验证凭据。
- 验证通过后,操作(克隆、推送、拉取等)继续进行。
- 免密方式: 可以使用
Git凭证存储(如git config credential.helper store或cache)或操作系统钥匙串来缓存凭据,避免每次输入。现代最佳实践是使用PAT代替密码(因为GitHub等已弃用密码验证)。
-
优点:
- 设置简单: 通常不需要额外配置,只需知道仓库的
HTTPS URL和账户凭据即可克隆。 - 防火墙友好:
HTTPS使用端口443,这是几乎所有网络都允许的标准Web端口,通常不受企业防火墙限制。 - 匿名读取: 对于公开仓库,可以直接克隆(
git clone)而无需任何身份验证(读取权限)。 - 双重验证支持: 如果需要账户开启了两步验证,使用
PAT可以很好地支持。 - 令牌粒度控制:
PAT可以设置细粒度的权限(如只读、读写特定仓库)和有效期,安全性更高(泄露了可以单独撤销)。 - 凭证管理: 操作系统或
Git内置的凭证助手可以方便地管理缓存。
- 设置简单: 通常不需要额外配置,只需知道仓库的
-
缺点:
- 身份验证: 每次操作(首次或凭证过期后)可能需要输入
用户名/PAT(除非使用凭证缓存)。 - 潜在凭证泄露风险: 如果配置不当(如使用不安全的凭证缓存),或在脚本中硬编码凭据,存在泄露风险。使用
PAT并妥善保管比密码安全得多。 - 效率: 在某些情况下(尤其是大型仓库或高延迟网络),
HTTPS可能比SSH稍慢一些(尽管差异在现代Git和网络中已变小)。
- 身份验证: 每次操作(首次或凭证过期后)可能需要输入
SSH(安全外壳协议):
-
核心原理:
- 使用非对称加密(公钥/私钥对)。
- 本地生成一对密钥:私钥(严格保密,保存在本地)和公钥(可以公开,上传到
Git服务商)。 - 所有通信通过
SSH隧道加密(端口 22)。
-
工作流程:
- 生成密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"(推荐) 或ssh-keygen -t rsa -b 4096 -C "your_email@example.com" - 添加公钥到服务商: 将
~/.ssh/id_ed25519.pub(或类似) 文件内容复制粘贴到你的Git服务账户设置(如GitHub的Settings -> SSH and GPG keys)。 - (可选但推荐) 启动 SSH 代理并添加私钥:
eval "$(ssh-agent -s)"然后ssh-add ~/.ssh/id_ed25519(会提示输入私钥密码短语)。 - 使用
SSH URL克隆:git clone git@github.com:username/repo.git - 身份验证: 服务器用你的公钥加密一个随机消息发给你,你的本地
SSH客户端用私钥解密并发回。服务器验证成功即允许操作。整个过程无需传输密码/令牌。 - 后续所有操作(
push, pull等)都自动使用此密钥进行认证(只要私钥在代理中或可用)。
- 生成密钥对:
-
优点:
-
强安全性: 基于密钥的非对称加密认证,比密码更安全(难以暴力破解)。私钥从不离开你的机器。
-
免密操作: 设置好密钥对并添加到代理后,所有
Git操作都不需要输入用户名/密码/令牌,非常便捷高效。 -
高效传输:
SSH协议通常被认为在传输Git数据时效率更高,尤其是在克隆大型仓库时可能更快。 -
连接稳定性:
SSH连接建立后通常更持久稳定。 -
多密钥管理: 可以为不同服务、账户或环境生成不同的密钥对,实现精细的访问控制。一个密钥泄露,只需撤销该公钥,不影响其他服务。
-
Git原生支持: 是Git设计时最自然的远程协议之一。
-
-
缺点:
-
初始设置稍复杂: 需要生成密钥对、添加公钥到服务商、管理私钥(和密码短语)。
-
防火墙限制: 有些严格的企业防火墙可能阻止出站的
SSH连接(端口22),而HTTPS(端口443)通常允许。 -
公钥管理: 需要在每个服务商账户上管理你的公钥(添加、删除、命名)。
-
私钥安全: 私钥是访问的
“根”。如果私钥泄露且未加密(无密码短语),攻击者就能访问所有关联的服务。必须妥善保管私钥并设置强密码短语!
-
| 特性 | HTTPS | SSH |
|---|---|---|
| 协议/端口 | HTTPS (443) | SSH (22) |
| 身份验证方式 | 用户名 + 密码 / 个人访问令牌 (PAT) | 公钥/私钥对 |
| 初始设 | 非常简单 (URL + 凭据) | 需要生成密钥、上传公钥 (稍复杂) |
| 日常操作 | 可能需要输入凭据 (可缓存) | 设置好后完全免密 (使用代理) |
| 安全性 | 传输加密 (TLS)。PAT 比密码安全。 | 非常强 (非对称加密,私钥本地)。需保护私钥。 |
| 防火墙穿透 | 非常好 (443端口通常开放) | 可能受阻 (22端口有时被禁) |
| 效率/速度 | 良好 (现代优化后) | 通常更高效 (尤其大仓库/高延迟) |
| 连接稳定性 | 良好 | 通常更好/更持久 |
| 匿名读取 | 支持 (公开仓库) | 不支持 (需要密钥认证) |
| 多账户/精细控制 | 依赖账户/PAT权限 | 优秀 (可生成多个密钥对管理不同访问) |
| 推荐使用场景 | - 快速开始 - 严格防火墙环境 - 公开仓库克隆 (无需认证) - CI/CD (使用 PAT) - 需要细粒度令牌权限 | - 追求高效免密操作 - 开发者日常工作站 - 不限制 22 端口的环境 - 需要管理多个身份/服务 |
HTTPS 和 SSH 都是安全可靠的 Git 远程协议。SSH 在便捷性(免密)和效率上通常更胜一筹,是开发者本地工作站的理想选择。HTTPS 则在设置简单性、防火墙穿透性和对公开仓库的匿名访问上更有优势,也是 CI/CD 中常用的安全方式(配合 PAT)。 理解它们的原理和优缺点,能帮助你根据具体环境和需求做出最佳选择。许多开发者会同时配置两种方式,在不同场景下灵活使用。
六、Git 命令
我们可以通过 git --help 命令查看 Git 中的各命令说明

下面我也列举了 Git 中 40+ 核心命令,按功能分类并包含实用示例。建议保存为参考手册,使用时可通过 git help <command> 查看具体命令的完整文档。
1. 仓库初始化与克隆
| 命令 | 作用 | 示例 | 常用选项 |
|---|---|---|---|
git init | 初始化新仓库 | git init | --bare 创建裸仓库 |
git clone | 克隆远程仓库 | git clone https://github.com/user/repo.git | --depth 1 浅克隆--branch feat 克隆指定分支 |
2. 基础工作流
| 命令 | 作用 | 示例 | 说明 |
|---|---|---|---|
git add | 添加文件到暂存区 | git add index.htmlgit add . | 支持通配符 *.js |
git commit | 提交变更 | git commit -m "添加登录功能" | -a 自动添加已跟踪文件--amend 修改上次提交 |
git status | 查看状态 | git status -s | -s 简洁模式输出 |
git diff | 查看差异 | git diffgit diff --staged | 比较工作区/暂存区/仓库 |
3. 分支管理
| 命令 | 作用 | 示例 | 说明 |
|---|---|---|---|
git branch | 分支操作 | git branch feat/logingit branch -d feat | -a 查看所有分支-D 强制删除 |
git checkout | 切换分支 | git checkout maingit checkout -b new-feat | -b 创建并切换 |
git switch | 切换分支(Git 2.23+) | git switch devgit switch -c hotfix | 更安全的切换方式 |
git merge | 合并分支 | git merge feat/login | --no-ff 禁用快进合并 |
git rebase | 变基操作 | git rebase main | 保持提交历史线性 |
4. 远程协作
| 命令 | 作用 | 示例 | 说明 |
|---|---|---|---|
git remote | 管理远程仓库 | git remote -vgit remote add upstream url | -v 查看详情 |
git push | 推送代码 | git push origin maingit push -u origin feat | -u 设置上游分支 |
git pull | 拉取更新 | git pull origin dev | = git fetch + git merge |
git fetch | 获取远程更新 | git fetch --prune | --prune 同步删除远程已删分支 |
5. 撤销与回退
| 命令 | 作用 | 示例 | 说明 |
|---|---|---|---|
git restore | 撤销修改 | git restore file.txtgit restore --staged file | 替代 git checkout -- file |
git reset | 版本回退 | git reset HEAD~1git reset --hard d3f4g | --soft 保留修改--hard 彻底丢弃 |
git revert | 撤销提交 | git revert d3f4g5 | 安全撤销(不重写历史) |
git clean | 清理未跟踪文件 | git clean -fd | -f 强制-d 包含目录 |
6. 查看历史
| 命令 | 作用 | 示例 | 常用选项 |
|---|---|---|---|
git log | 查看提交历史 | git log --oneline -5 | --graph 分支树-p 显示差异--since="1 week ago" |
git show | 显示提交详情 | git show d3f4g5 | --name-only 仅显示修改文件 |
git blame | 追溯文件修改 | git blame index.html | -L 10,20 指定行范围 |
7. 临时保存
| 命令 | 作用 | 示例 | 说明 |
|---|---|---|---|
git stash | 暂存修改 | git stash -u | -u 包含未跟踪文件 |
git stash pop | 恢复修改 | git stash pop stash@{1} | 恢复指定暂存 |
git stash list | 查看暂存列表 | git stash list |
8. 标签管理
| 命令 | 作用 | 示例 | 说明 |
|---|---|---|---|
git tag | 创建标签 | git tag v1.0git tag -a v2.0 -m "Release" | -a 创建附注标签 |
git push --tags | 推送标签 | git push origin --tags | 推送所有标签 |
git tag -d | 删除标签 | git tag -d v1.0 |
9. 高级工具
| 命令 | 作用 | 示例 | 使用场景 |
|---|---|---|---|
git reflog | 查看操作历史 | git reflog | 找回误删提交/分支 |
git bisect | 二分查找BUG | git bisect startgit bisect good v1.0git bisect bad HEAD | 定位问题提交 |
git cherry-pick | 选择性提交 | git cherry-pick d3f4g5 | 移植特定提交 |
10. 配置管理
| 命令 | 作用 | 示例 | 说明 |
|---|---|---|---|
git config | 配置设置 | git config --global user.name "John" | --global 全局配置--list 查看配置 |
git alias | 创建别名 | git config --global alias.co checkout | 简化常用命令 |
最佳实践提示:
- 提交规范:
<type>: <description>(如feat: 添加用户登录)- 分支策略:
main(生产) →dev(开发) →feature/*(功能分支)- 每日工作流:
git pull origin main # 拉取最新代码 git switch -b feat/xxx # 创建功能分支 # 进行开发... git add . git commit -m "feat: 实现xxx功能" git push origin feat/xxx # 创建PR/MR合并到主分支- 重要原则:不要强制推送 (
push -f) 公共分支
七、Git 的使用
上面已经介绍了 Git 是干什么的,以及它的工作流程并且安装了 Git 和创建了远程仓库,还熟悉了 Git 相关的命令,那么现在就可以进行相关的实操了。
我们之前已经创建了远程仓库,Gitee 就已经为我们提供了一些基本的操作。
案例一:本地创建Git仓库添加文件并推送至远程仓库
- 设置 Git 的全局配置
- 创建工作目录,初始化本地 Git 仓库
- 创建 README.md 文件
- 使用 status 命令查看状态
- 使用 add 命令添加,并查看状态
- 使用 commit 命令提交到本地仓库
- 使用 log 命令查看日志
- 使用 remote add 管理远程仓库
- 使用 push 推送提交内容到远程仓库
步骤如下:
-
① 设置 Git 的全局配置
如果是第一次使用 Git,那就需要设置 Git 的全局配置
# 设置全局名称 git config --global user.name "Your_name" # 设置全局邮箱 git config --global user.email "Your_email"
同时我们可以使用
git config -l命令查看所有的配置# 查询所有的全局配置 git config -l
-
② 创建工作目录,初始化本地仓库
创建工作目录
my-work下,并且进入到该目录下# 创建工作目录 my-work 文件夹 mkdir my-work # 进入到 my-work 文件夹下 cd my-work
PS:可以不用命令去创建,直接鼠标右键创建即可
初始化本地仓库
# 初始化本地仓库 git init
在初始化本地仓库之后可以看到在该目录下,有个一个默认被隐藏的
.git文件夹,就说明 Git 仓库初始化成功
-
③ 创建 README.md 文件
创建一个文件,可以是任意格式的文件,这里我就以
README,md文件为例# 创建 README.md 文件 touch README.md

PS:可以不用命令去创建,直接鼠标右键创建即可
-
④ 使用 status 命令查看状态
通过
status命令我们可以看到本地仓库下文件状态# 查看文件提交状态 git status
这里我们看到
README,md文件是红色的并且被标记为Untracked files,表明这些文件没有被放在暂存区 -
⑤ 使用 add 命令添加,并查看状态
接下来我们就能透过
add命令将文件添加到暂存区# 添加指定文件到暂存区 git add README.md # 将当前目录及其所有子目录中的变更添加到暂存区 git add .
提交之后再使用
status命令查看状态# 查看文件提交状态 git status
就能看到
README.md文件从红色变为绿色,并且被标记为Changes to be committed,表示该文件已经被添加到暂存区了 -
⑥ 使用 commit 命令提交到本地仓库
使用
commit命令提交暂存区的内容到本地仓库# 使用 commit 命令提交暂存区的内容到本地仓库 git commit -m "first commit"
-
⑦ 使用 log 命令查看日志
我们可以通过
log命令来查看提交的记录
-
⑧ 使用 remote add 管理远程仓库
为你的本地
Git仓库添加一个名为"origin"的远程仓库地址地址可从这里获取

以
HTTPS协议的https://gitee.com/xxxxxxx/my-work.git为例# 建立本地仓库与远程仓库的关联 git remote add origin https://gitee.com/xxxxxxx/my-work.git
-
⑨ 使用 push 推送提交内容到远程仓库
通过
push命令将本地仓库提交的内容推送到远程仓库# 推送本地提交内容至远程仓库 git push -u origin "master"
因为我说使用的是
HTTPS协议进行远程控制的,所以在推送前会有一个身份验证,输入Gitee的账号密码即可
完成之后就能看到创建的文件
README.md被成功推送至远程了我们可以来到远程仓库
Gitee上看到我们的提交记录
并且看到
README.md文件已经在远程仓库中存在了
在上述案例中我们使用的是
HTTPS协议,也就是https://gitee.com/xxxxxxx/my-work.git,那如果我们使用不是HTTPS协议,而是SSH协议git@gitee.com:xxxxxxx/my-work.git,就不会在我们push的时候要求我们输入账号和密码了。因为SSH是通过公钥/私钥的方式来认证身份的。
根据 官方文档:初次使用
SSH协议进行代码克隆、推送等操作时,需按下述提示完成SSH配置。
生成 SSH 公钥
① 通过命令 ssh-keygen 生成 SSH Key
ssh-keygen -t ed25519 -C "Gitee SSH Key"输出,如:
Generating public/private ed25519 key pair. Enter file in which to save the key (/home/git/.ssh/id_ed25519): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/git/.ssh/id_ed25519 Your public key has been saved in /home/git/.ssh/id_ed25519.pub The key fingerprint is: SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH Key The key's randomart image is: +--[ED25519 256]--+ | .o | | .+oo | | ...O.o + | | .= * = +. | | .o +..S*. + | |. ...o o..+* * | |.E. o . ..+.O | | . . ... o =. | | ..oo. o.o | +----[SHA256]-----+中间通过三次回车键确定
② 查看生成的 SSH 公钥和私钥
ls ~/.ssh/输出:
id_ed25519 id_ed25519.pub
- 私钥文件
id_ed25519- 公钥文件
id_ed25519.pub③ 读取公钥文件
~/.ssh/id_ed25519.pubcat ~/.ssh/id_ed25519.pub输出,如:
ssh-ed25519 AAAA***5B Gitee SSH Key复制终端输出的公钥。
设置账户 SSH 公钥
用户可以通过主页右上角 「个人设置」->「安全设置」->「SSH 公钥」->「添加公钥」 ,添加生成的 public key 添加到当前账户中。
需要注意: 添加公钥需要验证用户密码
通过 ssh -T 测试,输出 SSH Key 绑定的用户名:$ ssh -T git@gitee.com Hi USERNAME! You've successfully authenticated, but GITEE.COM does not provide shell access.在添加完公钥后,用户可以在 「个人设置」->「安全设置」->「SSH 公钥」 浏览查看当前账户已经添加的 SSH 公钥,并对公钥进行管理/删除操作。
案例二:本地拉取远程仓库,修改文件并推送至远程
- 创建本地工作目录,初始化本地 Git 仓库
- 通过 clone 命令拉去远程仓库至本地
- 修改 README.md 文件
- 添加修改文件到暂存区
- 将暂存区中的文件提交到本地仓库
- 使用 push 推送提交内容到远程仓库
步骤如下:
-
① 创建工作目录 my-work 下,并且进入到该目录下
新建文件夹 my-work

并进入到该文件夹下

通过
init命令初始化本地仓库# 初始化本地仓库 git init
-
通过 clone 命令拉去远程仓库至本地
在
gitee上找远程仓库的地址
点击
克隆/下载
可以通过
git clone git_address命令将远程仓库克隆到本地# 克隆 git clone your_git_address
你就能看到远程仓库中的内容就被克隆到本地了
-
③ 修改 README.md 文件
在远程仓库中有个
README.md文件,克隆之后该文件也会出现在本地一份
我们再对该文件进行修改

查看该文件状态
# 查看 git 状态 git status
可以看到该文件没有被放在暂存区
-
⑤ 添加修改文件到暂存区
通过
add命令将文件添加至暂存区# 添加文件夹下所有的文件到暂存区 git add .
-
⑥ 将暂存区中的文件提交到本地仓库
使用
commit命令将暂存区中的文件提交到本地仓库# 使用 commit 命令提交暂存区的内容到本地仓库 git commit -m "your remark"
-
⑦ 使用 push 推送提交内容到远程仓库
再使用
push命令将本地提交的修改推送到远程仓库# 推送本地提交内容至远程仓库 git push -u origin "master" # 或者 git push
可以看到修改的信息已经被推到远程了,我们可以打开远程仓库,刷新下就能看到刚提交的记录了

通常情况下,我们再对 git 项目下的文件就行修改之前,都会通过
pull命令拉取最新的代码# 拉取代码 git pull
八、总结
以上内容大概介绍了 Git 的安装与使用,作为一名开发人员几乎是离不开 Git 的,但是我觉得 Git 不仅仅是开发人员特有的工具,对于其它行业的人来说,在涉及文件协作的项目中,Git 同样能带来显著好处。
Git的安装、使用及远程仓库管理


3万+

被折叠的 条评论
为什么被折叠?



