30分钟掌握Git基础操作,轻松上手版本控制
一、核心摘要
本教程将手把手教你在Windows系统上安装和配置Git,适合代码开发初学者。通过学习本教程,你将掌握:
- Git在Windows环境的下载安装流程
- 基础配置与常用命令操作
- 本地仓库的创建与代码版本管理
- 远程仓库的连接与代码推送
- 历史版本回退与恢复操作
- 分支管理与合并策略
Git是目前最流行的分布式版本控制系统,对于代码开发人员而言,掌握Git的使用是必备技能。本教程以通俗易懂的语言,结合图解步骤,帮助你在30分钟内完成Git的安装配置并开始使用。
二、Git安装步骤详解
2.1 下载Git安装包

Git官方网站下载页面
步骤说明:
- 打开浏览器,访问Git官方网站:https://git-scm.com/
- 在首页点击"Download for Windows"按钮
- 选择适合你系统的版本(建议选择64位安装包)
- 点击下载等待完成
注意事项:
- 确保下载的是最新版本(当前最新版本为v2.47.1)
- 下载完成后会在"下载"文件夹中找到安装包(通常名为:Git-2.47.1-64-bit.exe)
2.2 运行安装程序

Git安装路径选择界面
安装步骤:
- 双击下载的安装包,启动安装向导
- 阅读许可协议,勾选"I accept the agreement",点击Next
- 选择安装路径(默认为C:\Program Files\Git\,建议保持默认)
- 选择组件(建议保持默认勾选状态)
关键配置选项:
- 桌面图标: 建议勾选,方便快速访问Git
- Windows文件夹集成: 建议勾选,可以在文件夹右键菜单直接打开Git命令行
- 关联Shell脚本文件: 建议勾选,使.sh文件可以用命令行运行
2.3 高级配置设置

Git高级配置选项界面
(1)选择默认编辑器
- 建议选择"Use Visual Studio Code as Git's default editor"
- 如果未安装VS Code,可以选择Notepad++或其他编辑器
- 也可以保持默认的Vim编辑器
(2)设置初始分支名称
- 选择"Let Git decide"(推荐):使用Git默认的master分支
- 或选择"Override the default branch name",指定main等名称
- 此设置不会影响已存在的仓库
(3)调整PATH环境变量
- 选择"Git from the command line and also from 3rd-party software"
- 此选项确保Git命令在命令提示符和其他软件中可用
(4)换行符处理
- 选择"Checkout Windows-style, commit Unix-style line endings"
- 此设置可避免跨平台协作时的换行符问题
2.4 完成安装

Git安装完成界面
- 点击"Install"开始安装
- 安装完成后,勾选"Launch Git Bash"可以直接启动Git命令行
- 点击"Finish"退出安装向导
三、验证安装与基础配置
3.1 验证Git安装

右键菜单中的Git Bash选项
操作步骤:
- 打开"开始"菜单,找到"Git"文件夹
- 选择"Git Bash"启动命令行工具
- 在命令行中输入以下命令验证版本:
git --version
预期输出:
git version 2.47.1.windows.2
如果显示版本号,说明Git安装成功。
3.2 配置用户信息

配置Git用户名和邮箱
设置全局用户名和邮箱:
在Git Bash中依次执行以下命令(替换为你的实际信息):
git config --global user.name "你的姓名" git config --global user.email "你的邮箱@example.com"
作用说明:
- 配置的用户名和邮箱用于标识代码提交的作者身份
- 必须与代码托管平台(如GitHub、Gitee)的注册信息一致
- 使用
git config --global --list可查看当前配置
四、Git基础使用操作
4.1 创建本地仓库

初始化Git仓库
操作流程:
1. 创建项目目录
mkdir my-project cd my-project
2. 初始化Git仓库
git init
3. 查看仓库状态
git status
状态说明:
git status会显示工作目录的状态- 初次显示会有"Untracked files"提示
- 需要将文件添加到暂存区后才能提交
4.2 添加与提交文件

提交代码到Git仓库
基本操作步骤:
1. 添加文件到暂存区
git add README.md
2. 添加所有文件
git add .
3. 提交更改
git commit -m "Initial commit"
参数说明:
git add <文件名>:添加指定文件到暂存区git add .:添加所有更改的文件git commit -m "提交信息":提交暂存区的更改并添加说明信息
4.3 查看历史记录
查看提交历史
git log
查看简短历史
git log --oneline
查看特定文件的历史
git log README.md
输出信息:
- 每次提交的作者、时间、提交信息
- 提交ID(用于回滚或比较)
五、远程仓库操作
5.1 关联远程仓库
添加远程仓库
git remote add origin https://github.com/用户名/仓库名.git
查看远程仓库
git remote -v
重命名远程仓库
git remote rename origin origin-backup
说明:
origin是远程仓库的默认名称- 可以关联多个远程仓库
- URL支持HTTPS和SSH两种协议
5.2 克隆远程仓库
克隆仓库到本地目录
git clone https://github.com/用户名/仓库名.git
说明:
- 会将远程仓库完整复制到本地
- 克隆后会自动关联远程仓库
- 目录名为仓库名称
5.3 推送代码
1. 添加文件
git add .
2. 提交更改
git commit -m "提交信息"
3. 推送到远程仓库
git push -u origin main
参数说明:
u参数将本地分支关联到远程分支- 首次推送时需要使用
- 后续推送可直接使用
git push
5.4 拉取更新
从远程仓库拉取更新
git pull origin main
说明:
- 会自动合并远程更改到本地分支
- 如果有冲突,需要手动解决后再次提交
六、进阶操作:历史版本管理、分支管理与合并
6.1 历史版本回退与恢复
6.1.1 回退历史版本
在开发过程中,有时需要回退到之前的版本。Git提供了多种回退方式:

Git revert操作前后对比
(1)使用 git reset 回退版本
查看提交历史,确定要回退的版本
git log --oneline
回退到上一个版本(保留工作区修改)
git reset --soft HEAD^
回退到上一个版本(丢弃工作区修改)
git reset --hard HEAD^
回退到指定版本
git reset --hard <commit-id>
参数说明:
-soft:回退到指定版本,但保留工作区的修改-hard:完全回退到指定版本,丢弃工作区的修改HEAD^:上一个版本HEAD~n:向上回退n个版本<commit-id>:指定的提交ID
实际操作示例:
假设当前有3个版本:A -> B -> C(最新)
要回退到版本B
git reset --hard HEAD^
输出显示:
HEAD is now at <B的commit-id> 提交信息
(2)使用 git revert 撤销特定提交
撤销指定的提交,会创建一个新提交
git revert <commit-id>
撤销最近的提交
git revert HEAD
reset
通过移动HEAD指针来回退版本,会丢失历史记录
revert
创建一个新提交来撤销之前的操作,保留完整的历史记录
6.1.2 查看历史命令
(1)查看引用日志(reflog)
查看HEAD的所有历史记录
git reflog
查看最近10条记录
git reflog -10
查看特定分支的历史
git reflog show <branch-name>

Git工作区、暂存区和仓库关系图
输出信息:
HEAD@{0}: commit: 提交信息 HEAD@{1}: reset: moving to HEAD^ HEAD@{2}: commit: 提交信息 ...
作用:
- reflog记录了所有对HEAD的操作历史
- 可以用于恢复到任何之前的状态
- 即使在reset或revert后也能找到之前的版本
(2)恢复到之前的版本
通过reflog找到目标版本的编号
git reflog
假设要恢复到HEAD@{2}
git reset --hard HEAD@{2}
实际案例:
场景:不小心reset了最新版本,想要恢复
$ git reflog HEAD@{0}: reset: moving to HEAD^ HEAD@{1}: commit: fix bug HEAD@{2}: commit: add feature
恢复到"add feature"版本
$ git reset --hard HEAD@{2}
6.2 分支管理
6.2.1 创建与切换分支
(1)查看分支
查看所有本地分支
git branch
查看所有分支(包括远程)
git branch -a
查看已合并到当前分支的分支
git branch --merged
查看未合并到当前分支的分支
git branch --no-merged
(2)创建分支
创建新分支并切换到该分支
git checkout -b <branch-name>
创建新分支但不切换
git branch <branch-name>
创建并切换到分支(简写)
git switch -c <branch-name>
实际操作示例:
创建一个开发新功能的分支
$ git checkout -b feature/user-auth
Switched to a new branch 'feature/user-auth'
在该分支上开发
echo "new code" \>\> feature.js git add feature.js $ git commit -m "feat: add user authentication"
(3)切换分支
切换到已存在的分支
git checkout <branch-name>
切换到分支(新语法)
git switch <branch-name>
切换到上一个分支
git checkout -
6.2.2 管理分支
(1)合并分支

Git merge操作示意图
切换到目标分支(通常是master或main)
git checkout master
合并指定分支到当前分支
git merge <branch-name>
使用no-fast-forward模式合并(会创建合并提交)
git merge --no-ff <branch-name>
合并过程说明:
- Git会尝试自动合并
- 如果有冲突,需要手动解决
- 解决冲突后需要再次提交
(2)删除分支
删除已合并的本地分支
git branch -d <branch-name>
强制删除分支(即使未合并)
git branch -D <branch-name>
删除远程分支
git push origin --delete <branch-name>
实际操作示例:
完成功能分支后合并到主分支
git checkout main git merge feature/user-auth
Merge made by the 'recursive' strategy.
删除已合并的功能分支
$ git branch -d feature/user-auth
6.2.3 分支管理策略

GitFlow分支管理策略
推荐的分支管理模式:
(1)GitFlow模式
- 主分支:master(生产环境)、develop(开发环境)
- 功能分支:feature/功能名称
- 发布分支:release/版本号
- 修复分支:hotfix/问题描述
(2)GitHubFlow模式
- 主分支:main(始终稳定)
- 功能分支:直接在main分支创建 Pull Request
- 简化流程,适合持续部署
6.3 变基操作(Rebase)
6.3.1 什么是变基
变基(rebase)是一种将一个分支的修改重新应用到另一个分支基础上的操作。它与merge的区别在于:

Git rebase与merge操作对比
merge
保留完整的历史记录,创建一个合并提交
rebase
将修改"重放"在目标分支的基础上,保持历史线性
6.3.2 使用变基
(1)变基基本操作
将当前分支变基到目标分支
git rebase <target-branch>
变基到指定提交
git rebase <commit-id>
交互式变基(可以修改多个提交)
git rebase -i HEAD~3
实际操作示例:
场景:在feature分支上开发了3个提交
A -> B -> C(feature分支)
\
D -> E(main分支)
将feature分支变基到main上
git checkout feature git rebase main
结果变成:
A' -> B' -> C'(新的feature分支,基于E)
(2)变基的优势
- 保持历史记录整洁线性
- 避免不必要的合并提交
- 便于理解和维护
(3)变基的注意事项
- 变基会重写历史,不要对已推送的分支进行变基
- 如果分支已经推送到远程并被人使用,不要轻易变基
- 变基过程中遇到冲突需要解决后继续
git rebase --continue
6.3.3 变基 vs 合并
使用merge的场景:
- 需要保留完整的历史记录
- 团队协作时需要清晰的合并信息
- 不改变提交历史
使用rebase的场景:
- 希望保持线性的历史记录
- 在推送前整理本地提交
- 避免历史记录过于复杂
6.4 解决合并冲突
6.4.1 冲突产生的原因
当两个分支对同一文件的同一区域进行了不同的修改,Git无法自动决定如何合并时,就会产生冲突。
6.4.2 识别冲突
尝试合并或拉取时
$ git pull origin main
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
查看冲突文件
git status
Unmerged paths:
both modified: README.md
6.4.3 解决冲突
步骤1:查看冲突文件
冲突文件中会有标记:
<<<<<<< HEAD 当前分支的内容
待合并分支的内容
branch-name
步骤2:编辑文件
- 手动修改文件内容
- 保留需要保留的代码
- 删除冲突标记
步骤3:标记冲突已解决
git add <文件名>
或标记所有冲突已解决
git add .
继续合并流程
git commit
实际示例:
README.md产生冲突
<<<<<<< HEAD Git is a version control system.
Git is a distributed version control system.
feature-branch
修改后:
Git is a distributed version control system.
最佳实践:
- 尽量避免在相同区域修改代码
- 使用清晰的提交信息
- 频繁拉取远程更新到本地分支
七、常用Git命令速查表
| 命令 | 说明 | 示例 |
|---|---|---|
git init |
初始化仓库 | git init |
git add |
添加文件到暂存区 | git add . |
git commit |
提交更改 | git commit -m "信息" |
git status |
查看状态 | git status |
git log |
查看历史 | git log --oneline |
git reset |
回退版本 | git reset --hard HEAD^ |
git revert |
撤销提交 | git revert <commit-id> |
git reflog |
查看操作历史 | git reflog |
git branch |
查看/创建分支 | git branch -b <name> |
git checkout |
切换分支 | git checkout <branch> |
git merge |
合并分支 | git merge <branch> |
git rebase |
变基操作 | git rebase <branch> |
git remote add |
添加远程仓库 | git remote add origin url |
git clone |
克隆仓库 | git clone url |
git push |
推送代码 | git push -u origin main |
git pull |
拉取更新 | git pull origin main |
八、常见问题与解决方案
8.1 安装相关问题
问题:命令提示符无法识别git命令
原因: PATH环境变量未正确配置
解决: 重新安装时选择"Git from the command line and also from 3rd-party software"选项
问题:Git GUI无法启动
原因: 安装时未勾选相关组件
解决: 重新安装并确保勾选"Git GUI Here"等选项
8.2 使用相关问题
问题:提交时提示邮箱无效
原因: 配置的邮箱与代码托管平台不一致
解决: 使用git config --global user.email "正确邮箱"重新配置
问题:换行符导致代码差异
现象: Windows和Linux系统换行符不同导致提交时显示大量修改
解决: 安装时选择"Checkout Windows-style, commit Unix-style line endings"选项
额外配置: 运行git config --global core.autocrlf true
问题:分支合并后出现冲突
原因: 两个分支修改了同一文件的同一区域
解决: 手动解决冲突后git add文件并git commit
九、最佳实践建议
9.1 代码开发工作流

Git分支管理工作流
推荐流程:
- 从远程仓库克隆项目或创建新项目
- 创建新分支进行开发(feature分支)
- 完成开发后提交并推送到远程仓库
- 创建Pull Request/Merge Request请求代码审查
- 审查通过后合并到主分支(main/master)
9.2 提交规范
提交信息建议:
- 使用清晰、简洁的描述
- 采用"类型: 简短描述"格式
- 常见类型:feat(新功能)、fix(修复)、docs(文档)、style(格式)、refactor(重构)等
git commit -m "feat: 添加用户登录功能" git commit -m "fix: 修复页面跳转问题"
9.3 分支管理策略
分支命名建议:
- 主分支:main(master)
- 开发分支:develop
- 功能分支:feature/功能名称
- 修复分支:hotfix/问题描述
最佳实践:
- 保持主分支稳定,只合并经过测试的代码
- 使用功能分支开发新特性,避免直接在主分支开发
- 定期合并远程更新到本地分支
- 完成功能后及时删除已合并的分支
9.4 历史版本管理建议
版本回退注意事项:
- 使用
git log查看历史后再回退 - 对于重要操作,先用
git reflog记录 - 尽量使用
git revert而不是git reset,保留历史记录 - 团队协作中避免强制推送到远程分支
十、进阶学习建议
10.1 图形化工具
Git GUI
Git自带的图形界面工具,适合初学者
Sourcetree
免费的Git图形化管理工具,功能强大
GitHub Desktop
GitHub官方提供的桌面应用,界面友好
10.2 远程平台
GitHub
最大的代码托管平台,开源项目首选
Gitee
国内代码托管平台,访问速度快
GitLab
支持私有部署,企业级解决方案
10.3 持续学习
推荐学习资源:
- 廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000
- Git官方文档:https://git-scm.com/doc
- GitHub官方指南:https://docs.github.com/cn/get-started
进阶技能:
- SSH密钥配置:免密码登录远程仓库
- 高级分支策略:rebase、merge等操作
- 变基操作:保持提交历史整洁
- 子模块管理:管理多项目依赖
- 持续集成/持续部署(CI/CD)流程
十一、总结与展望
11.1 学习总结
通过本教程的学习,你已经掌握了:
- Git在Windows环境的完整安装流程
- 基础配置与常用命令操作
- 本地仓库的创建与代码版本管理
- 远程仓库的连接与代码推送
- 历史版本回退与恢复操作
- 分支管理与合并策略
- 变基操作与冲突解决
11.2 实践建议
循序渐进的学习路径:
- 熟练掌握基础命令:add、commit、push、pull
- 学会分支管理:创建、切换、合并分支
- 掌握版本回退:reset、revert、reflog
- 学习变基操作:rebase、冲突解决
- 配置SSH密钥,提高安全性
- 使用图形化工具辅助理解Git操作
- 参与团队协作,学习代码审查流程
11.3 后续发展
技能提升方向:
- 深入理解Git内部原理(对象模型、引用机制)
- 掌握高级操作(cherry-pick、rebase、bisect)
- 学习持续集成/持续部署(CI/CD)流程
- 了解企业级Git工作流(GitFlow、GitHub Flow等)
- 熟练使用远程平台和企业级解决方案
Git是代码开发的重要工具,通过持续的实践和应用,你将能够熟练掌握这个强大的版本控制系统,提高开发效率和代码质量。
十二、Git工作流程图解
