一、前言
Git 是目前全球最流行的分布式版本控制系统,也是软件开发领域的基础工具。它最初用于管理 Linux 内核开发,现在已经成为几乎所有软件开发团队的标配。Git 可以记录代码的每一次变更,支持多人并行开发、版本回溯、分支隔离、代码协同,广泛应用于个人项目管理、团队开发、开源协作、DevOps 流程等场景。
很多新手第一次接触 Git 时,都会被 "工作区、暂存区、本地仓库、远程仓库" 这些概念绕晕,也容易在提交、拉取、合并时出错。实际上日常开发中高频使用的命令并不多,掌握基础提交、分支切换、远程同步、冲突解决这几块,就能覆盖绝大多数场景。本文就从安装配置开始,按功能模块拆解核心操作,每个功能都附带实操示例与场景说明,看完就能上手用 Git 管理代码版本。
二、安装指南:多平台安装方法
2.1 官方下载渠道
Git 是完全开源免费的工具,官方提供全平台安装包,最新稳定版为 2.47 版本,支持 Windows、Mac、Linux 系统,功能完整无阉割。 官方下载主页:Redirecting... 所有安装包均来自官方发布,可放心下载使用。官方服务器部署于境外,国内网络环境下下载速度可能出现波动,若遇到下载中断、速率过慢的情况,可使用国内加速镜像作为备选:
http:// https://pan.baidu.com/s/1vDQBRVkmMNzfBVLv85utsw?pwd=8888
http:// https://pan.baidu.com/s/1vDQBRVkmMNzfBVLv85utsw?pwd=8888https://pan.quark.cn/s/098e173225f4
https://pan.quark.cn/s/098e173225f4
文件与官方 2.47 正式版完全一致,仅作下载加速用途。
2.2 Windows 系统安装
-
在官方下载页下载 Windows 安装包,文件名格式为
Git-2.47.x-64-bit.exe -
右键以管理员身份运行安装程序,点击 Next 接受许可协议
-
选择安装路径,建议使用默认路径,组件选择保持默认即可
-
选择默认编辑器,新手可选择 Notepad++ 或保持默认 Vim
-
配置 Git 使用的默认终端,Windows 下建议选择 Git Bash 或系统终端
-
安装完成后,在开始菜单找到 Git Bash,启动后输出版本号即为安装成功
2.3 Mac 系统安装
Mac 用户可以直接通过 Homebrew 安装:
brew install git
也可以从官网下载安装包安装,安装完成后在终端执行:
git --version
输出版本号说明安装成功。
2.4 Linux 系统安装
git config --list
绝大多数 Linux 发行版都可以通过包管理器直接安装:
# Debian/Ubuntu 系列
sudo apt update
sudo apt install -y git
# CentOS/RHEL 系列
sudo yum install -y git
# Arch Linux 系列
sudo pacman -S git
2.5 首次配置
安装完成后,先配置用户名和邮箱,这会出现在每一次提交记录中:
git config --global user.name "你的名字"
git config --global user.email "your@email.com"
查看当前配置:
git config --list
三、基础认知:Git 工作区与核心概念
3.1 四个核心区域
Git 的核心是四层结构,理解这四层就能理解大多数命令的作用:
-
工作区 Workspace:你在电脑里看到和编辑的项目文件
-
暂存区 Staging Area:临时存放将要提交的文件改动
-
本地仓库 Local Repository:保存本机的所有提交历史
-
远程仓库 Remote Repository:团队共用的云端仓库,比如 GitHub、Gitee、GitLab
常用命令对应的区域变化:
-
git add:工作区 → 暂存区 -
git commit:暂存区 → 本地仓库 -
git push:本地仓库 → 远程仓库 -
git pull:远程仓库 → 本地仓库 → 工作区
3.2 文件状态
Git 中的文件通常有几种状态:
-
untracked:未被 Git 跟踪的新文件
-
modified:已跟踪但被修改,未暂存
-
staged:已暂存,等待提交
-
committed:已提交到本地仓库
查看文件状态:
git status
四、核心命令详解
4.1 初始化仓库
开始管理一个项目,有两种常见方式:
方式一:新建本地仓库
mkdir my-project
cd my-project
git init
执行后,当前目录会生成一个隐藏的.git文件夹,Git 开始管理这个项目。
方式二:克隆远程仓库
git clone shturl.cc/pdgAW2S0MVkKeT81uv2m2vSFdqL0umgSi
克隆后会自动创建项目目录、连接远程仓库,并下载完整历史。
4.2 基础提交
提交是 Git 最核心的操作,相当于为当前代码拍一个 "版本快照"。
# 查看当前文件状态
git status
# 将文件加入暂存区
git add index.html
git add css/style.css
# 将所有改动加入暂存区
git add .
# 提交到本地仓库
git commit -m "添加首页结构和基础样式"
提交信息建议清晰说明 "做了什么",方便以后回溯。推荐格式:
git commit -m "feat: 添加用户登录接口"
git commit -m "fix: 修复列表分页显示错误"
git commit -m "docs: 更新 README 使用说明"
4.3 查看历史与版本回溯
提交后,可以查看历史记录并回退到任意版本。
# 查看提交历史
git log
# 查看简洁历史
git log --oneline
# 查看某个文件的修改历史
git log --oneline index.html
# 查看某次提交的具体改动
git show 提交ID
如果想回退到某个历史版本:
git reset --hard 提交ID
注意:--hard会丢弃工作区未提交改动,使用前先确认。
4.4 分支管理
分支是 Git 最强大的功能之一,可以把不同功能、不同版本的开发隔离开。
·
# 查看所有分支
git branch
# 创建新分支
git branch feature/login
# 切换分支
git checkout feature/login
# 创建并切换分支
git checkout -b feature/login
团队开发中常见分支命名:
-
main/master:主分支,稳定版本 -
develop:开发分支 -
feat/xxx:功能分支 -
fix/xxx:修复分支 -
release/xxx:发布分支
4.5 合并分支
在功能开发完成后,将分支合并回主分支。
# 先切换到主分支
git checkout main
# 合并指定分支
git merge feature/login
合并时如果没有冲突,Git 会自动完成合并;如果同一文件被多人修改,就会产生冲突,需要手动处理。
4.6 远程仓库操作
本地仓库需要连接远程仓库,才能实现多人协作。
# 查看当前远程仓库
git remote -v
# 添加远程仓库
git remote add origin shturl.cc/pdgAW2S0MVkKeT81uv2m2vSFdqL0umgSi
# 修改远程仓库地址
git remote set-url origin shturl.cc/pdgAW2S0MVkKeT81uv2m2vSFdqL0umgSi
# 删除远程仓库连接
git remote remove origin
4.7 推送与拉取
# 将本地提交推送到远程仓库
git push origin main
# 将远程最新内容拉取到本地
git pull origin main
# 只获取远程更新,不自动合并
git fetch origin
如果是第一次推送新分支:
git push -u origin feature/login
五、团队协作流程
5.1 标准协作流程
多人团队通常按下面的流程协作:
-
从主分支创建新分支
git checkout main
git pull origin main
git checkout -b feature/order-module -
在新分支上开发并提交
git add .
git commit -m "feat: 添加订单模块基础接口" -
推送到远程并创建合并请求
git push -u origin feature/order-module
-
同事 Review 代码后,合并到主分支
-
本地同步最新主分支
git checkout main
git pull origin main
5.2 暂存当前工作
开发到一半需要切换分支时,可以先暂存当前改动:
# 暂存工作区改动
git stash
# 查看暂存列表
git stash list
# 恢复最近一次暂存
git stash pop
# 恢复指定暂存
git stash apply 暂存ID
六、冲突产生与解决
6.1 什么是冲突
当两个人修改了同一个文件的同一行,或者一个人删除了另一个人修改的文件时,Git 无法自动判断保留哪个版本,就会产生冲突。
6.2 冲突标记
冲突文件中会出现类似标记:
<<<<<<< HEAD
当前分支的内容
=======
另一个分支的内容
>>>>>>> 分支名
-
<<<<<<< HEAD到=======之间是当前分支的内容 -
=======到>>>>>>>之间是合并进来的内容
6.3 解决方法
-
打开冲突文件
-
手动保留需要的内容
-
删除冲突标记
-
标记冲突已解决
git add 冲突文件
git commit -m "fix: 解决合并冲突"
七、常用实战场景
7.1 误提交了不需要的文件
# 取消暂存文件
git reset HEAD filename
# 撤回最近一次提交,保留改动
git reset --soft HEAD^
# 彻底撤回最近一次提交,丢弃改动
git reset --hard HEAD^
7.2 提交信息写错了
git commit --amend -m "新的正确提交信息"
7.3 把某段改动拆成多个提交
git add 文件1
git commit -m "feat: 添加A功能"
git add 文件2
git commit -m "feat: 添加B功能"
7.4 临时保存工作去处理紧急 Bug
git stash
git checkout main
git pull origin main
git checkout -b fix/bug-001
八、常见问题与注意事项
8.1 git push 被拒绝
原因 :远程有新提交,本地不是最新版本。 解决方案:
git pull origin main
git push origin main
8.2 git pull 时自动合并产生冲突
解决:
-
查看冲突文件
-
手动合并内容
-
git add 文件名 -
git commit
8.3 不小心提交了敏感信息
敏感信息包括密码、密钥、数据库地址等,不要提交到仓库。如果已经提交:
-
立即从代码中删除
-
修改密码或密钥
-
从历史中清理,必要时联系仓库管理员处理
8.4 如何忽略文件
在项目根目录创建.gitignore文件,写入不需要提交的文件:
node_modules/
dist/
.env
*.log
.idea/
.vscode/
8.5 使用注意事项
-
提交前先
git status,确认提交内容 -
不要提交编译产物、依赖包、本地配置文件
-
提交信息要清晰,方便团队协作
-
公共分支不要随意
push --force -
团队尽量统一分支命名和提交规范
九、总结与学习建议
Git 是典型的 "命令多、高频少" 的工具,真正日常开发中反复使用的命令并不多。入门阶段先掌握init / clone / add / commit / branch / checkout / merge / push / pull这几个核心命令,再理解工作区、暂存区、本地仓库、远程仓库之间的数据流向,就能解决大多数问题。
学习建议:不要死记硬背所有命令,先在本地项目中练习提交、分支切换和合并,再接入远程仓库练习团队协作。遇到冲突不要怕,冲突本质上是多人修改同一内容后的正常合并过程,看懂冲突标记、保留正确内容,就能逐步建立 Git 思维。
文章标签
Git、版本控制、开发工具、团队协作、代码管理