Git - 的安装与使用
目录
- 前言
- 一、软件开发所面临的问题
- 二、Git 的简介
- 三、Git 的工作流程
- 四、Git 的下载与安装
- 五、Git 中的远程仓库
-
- 1. 远程仓库的概述
- 2. 远程仓库的创建
- 3. HTTPS 和 SSH 协议
- 六、Git 命令
-
- 1. 仓库初始化与克隆
- 2. 基础工作流
- 3. 分支管理
- 4. 远程协作
- 5. 撤销与回退
- 6. 查看历史
- 7. 临时保存
- 8. 标签管理
- 9. 高级工具
- 10. 配置管理
- 七、Git 的使用
- 八、总结
前言
对于软件开发人员而言 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/
文档: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 vs SSH)
- 严格防火墙环境
- 公开仓库克隆 (无需认证)
- CI/CD (使用 PAT)
- 需要细粒度令牌权限
- 开发者日常工作站
- 不限制 22 端口的环境
- 需要管理多个身份/服务
HTTPS
和 SSH
都是安全可靠的 Git
远程协议。SSH 在便捷性(免密)和效率上通常更胜一筹,是开发者本地工作站的理想选择。HTTPS
则在设置简单性、防火墙穿透性和对公开仓库的匿名访问上更有优势,也是 CI/CD
中常用的安全方式(配合 PAT
)。 理解它们的原理和优缺点,能帮助你根据具体环境和需求做出最佳选择。许多开发者会同时配置两种方式,在不同场景下灵活使用。
六、Git 命令
我们可以通过 git --help
命令查看 Git
中的各命令说明
下面我也列举了 Git 中 40+ 核心命令,按功能分类并包含实用示例。建议保存为参考手册,使用时可通过 git help
查看具体命令的完整文档。
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.html
git add .
*.js
git commit
git commit -m \"添加登录功能\"
-a
自动添加已跟踪文件--amend
修改上次提交git status
git status -s
-s
简洁模式输出git diff
git diff
git diff --staged
3. 分支管理
git branch
git branch feat/login
git branch -d feat
-a
查看所有分支-D
强制删除git checkout
git checkout main
git checkout -b new-feat
-b
创建并切换git switch
git switch dev
git switch -c hotfix
git merge
git merge feat/login
--no-ff
禁用快进合并git rebase
git rebase main
4. 远程协作
git remote
git remote -v
git remote add upstream url
-v
查看详情git push
git push origin main
git 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.txt
git restore --staged file
git checkout -- file
git reset
git reset HEAD~1
git 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.0
git 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
git bisect start
git bisect good v1.0
git 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
最佳实践提示:
- 提交规范:
:
(如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_ed25519Your public key has been saved in /home/git/.ssh/id_ed25519.pubThe key fingerprint is:SHA256:ohDd0OK5WG2dx4gST/j35HjvlJlGHvihyY+Msl6IC8I Gitee SSH KeyThe 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.pub
cat ~/.ssh/id_ed25519.pub
输出,如:
ssh-ed25519 AAAA***5B Gitee SSH Key
复制终端输出的公钥。
设置账户 SSH 公钥
用户可以通过主页右上角 「个人设置」->「安全设置」->「SSH 公钥」->「添加公钥」 ,添加生成的 public key 添加到当前账户中。
需要注意: 添加公钥需要验证用户密码
通过 ssh -T 测试,输出 SSH Key 绑定的用户名:$ ssh -T git@gitee.comHi 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
同样能带来显著好处。