Git分布式版本控制工具
@Author : LeonSong
@Date : October 10, 2025
一. Git工作流程
1.1 Git简介
git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
1.2 Git工作流程

主要命令如下:
| Order | Describe |
|---|---|
| clone | 从远程仓库克隆代码到本地仓库 |
| checkout | 从本地仓库中检出一个仓库分支然后进行修订 |
| add | 在提交前先将代码提交到暂存区 |
| commit | 提交到本地仓库,本地仓库中保存修改的各个历史版本 |
| fetch | 从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少 |
| pull | 从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于 fetch+merge |
| push | 修改完成后,需要和团队成员共享代码时,将代码推送到远程仓库 |
二 . Git安装及常用指令
2.1安装配置(MacOS)
通过Homebrew安装
检查homebrew
# 检查homebrew是否安装
where homebrew

如果没有安装到 Homebrew for macOS 下载.pkg安装包安装,因为brew的官方源下载很慢,先进行换源
-
替换brew.git
$ cd "$(brew --repo)" # 中国科大: $ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git # 清华大学: $ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git -
替换brew-core.git
$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" # 中国科大: $ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git # 清华大学: $ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git -
替换homebrew-bottles
# 中国科大: $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile $ source ~/.bash_profile # 清华大学: $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile $ source ~/.bash_profile
上述指令执行完毕后,执行
brew update
换源之后第一次更新的速度比较慢,耐心等待,更新之后下载速度就会明显提升
安装Git并设置用户信息
brew install git
检查一下是否安装成功

设置用户信息
git config --global user.name "your_user_name"
git config --global user.email "your_email"
执行以下命令查看是否配置成功

为常用指令设置别名
别名,就是给一串命令添加一个缩写,可以让终端自动识别,实现同样的功能
大家一般已经创建过~/.zshrc文件,位于/User/username目录下,在终端中打开文件
nano / vim ~/.zshrc
以下是一些示例,可以参照

2.2 基础指令

使用命令控制这些状态之间的转换
1.初始化git目录
git会将该目录初始化为本地git仓库,创建.git文件夹
git init
2.将该仓库的改动放入暂存区,等待提交
git add
# usage
git add src/ # 添加整个目录
git add test.txt # 添加单个文件
git add . # 添加所有改动
3.提交暂存区的内容到本地仓库的当前分支
-m : message的缩写,后面跟描述信息
git commit
# usage
git commit -m "add README.md document"
4.查看修改状态
git status
5.查看提交记录
git log [options]
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitID更简短
--graph 以图的形式显示
6.版本切换
先使用git log命令查看commitID,也可以用git reflog查看已经删除的记录
git reset --hard commitID
添加文件到忽略列表
实际开发中,不是所有的项目文件都需要管理,
在当前目录下创建.ignore文件,把需要git忽略的文件名写入到.ignore文件中

分支
这里介绍一下分支的实际意义,主要包括以下方面:
- 隔离变化,保护主干
- 如果你的服务器上已经运行了一个网站,领导告诉你希望你添加一个与AI智能聊天的功能或者让你修复一个
Bug,你肯定不会在服务器上直接开发,你会想先把源码从服务器上拷贝到另一台机器上进行开发或者修复,然后用你做完的成品去替换掉原来的源码.有了Git之后,我们假设服务器上正在运行的项目是main分支,就可以创建一个feature分支用于开发,创建一个hotfix分支进行修改Bug,让开发,维护和服务都不受影响.
- 如果你的服务器上已经运行了一个网站,领导告诉你希望你添加一个与AI智能聊天的功能或者让你修复一个
-
团队协作
- 同样的,你成为了软件开发部门的主管,领导喊你们开发一个线上商城,你安排A做登录功能,安排B做购物车功能,安排C做推荐功能,每个人都有独立的分工,每个人都可以创建一个自己的分支如
feature/login,feature/shopCar,feature/recommend去独立工作,各自提交各自的代码,提交后发起代码审查,你审核之后觉得这些功能都OK了,再与main分支进行合并
- 同样的,你成为了软件开发部门的主管,领导喊你们开发一个线上商城,你安排A做登录功能,安排B做购物车功能,安排C做推荐功能,每个人都有独立的分工,每个人都可以创建一个自己的分支如
-
git branch查看本地分支

git branch branch_name创建名为branch_name的本地分支

git checkout branch_name切换分支

git chekout -b branch_name切换一个不存在的分支(创建并切换)

git merge branch_name一个分支上的提交可以合并到另一个分支
合并分支时,当前一定要在要合并到的那个分支



git branch -d[-D] branch_name删除分支,-d删除分支时需要做各种检查,-D为强制删除
注意:新建Gi仓库只有在执行第一次commit之后才会产生master分支,在第一次commit之前无法创建其他分支
解决冲突
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,步骤如下:
- 处理文件中冲突的地方
- 将解决完冲突的文件加入到暂存区 (add)
- 提交到仓库 (commit)
# Demo
~/GitTest 目录下有一个Demo.txt文件
此时存在两个分支 /master
/dev01
master 分支下,Demo.txt内容是 Hello Demo Master
dev01 分支下,Demo.txt内容是 Hello Demo Dev01




三. Git远程仓库
1-公钥,私钥与数字签名
这里推荐知乎上的一篇文档,非常浅显易懂 https://zhuanlan.zhihu.com/p/698175888
接下来我会演示怎么配置GitHub 和 Gitee 的ssh密钥配置过程,对于没有Git仓库使用经验的,建议从Gitee(国内的代码仓库)用起,相比GitHub页面更加中文友好
对后续使用GitHub可以实现一个过渡作用,国内的话不用魔法使用GitHub是一件非常让人头疼的事情.
2-Gitee
预备工作,与GitHub适用
- 进入~/.ssh目录下,查看是否已经有密钥,我这里是公司的windows电脑,看到没有密钥存在

-
创建密钥
ssh-keygen -t ed25519 -C "le0n404@163.com" -f ~/.ssh/id_ed25519_gitee # 邮箱替换成你在gitee上绑定的邮箱
-
检查是否安装ssh的客户端,windows用户按win键搜索powershell以管理员身份运行执行
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
如果未安装:
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0安装后启动ssh客户端:
Start-Service ssh-agent -
进入gitee,右上角进入我的设置后,左边选项栏选择ssh密钥

-
查看公钥并复制上去,标题自定义做好区分
cat id_ed25519_gitee.pub # 替换为你自己的公钥文件名

-
修改一下~/.ssh/congfig配置文件
没有的话自行创建
notepad ~/.ssh/config添加以下内容,只有私钥路径需要替换成你自己的
# Gitee Host gitee.com HostName gitee.com User git IdentityFile ~/.ssh/id_ed25519_gitee IdentityOnly yes -
选择一个本地仓库将仓库地址更改为
ssh形式,这里可以看到目前这个仓库用的是http
执行:
git remote set-url origin git@gitee.com:LeonSong/repo.git重新查看:

到此就已经完成
ssh密钥的配置了,现在可以尝试推送或拉取代码仓库了
3-GitHub
我累了,跟上面其实差不多...