一、教程概述
本教程为Git版本控制系统的新手入门文档,覆盖Git核心原理、全量常用命令行操作,同时补充主流集成开发环境(IDE)的可视化Git操作指南,帮助新手快速掌握Git的基础使用方法与团队协作规范。
一般现代化的集成开发环境(如IDEA)都会自带Git可视化面板或者选项,所以不需要死记硬背指令,记住大概概念即可。
二、Git基础概述
2.1 核心定义
Git是一款开源的分布式版本控制系统,用于追踪文件的修改历史,支持多人协同开发,是当前软件开发领域的主流版本管理工具。
需明确核心区分:Git ≠ 远程代码托管平台。Git为本地版本管理工具,GitHub、Gitee、GitLab等为基于Git的远程代码托管平台,用于远程仓库存储与协作管理。
2.2 核心工作区域
Git的所有操作均围绕以下4个核心区域完成,所有命令的本质是实现文件在4个区域之间的流转:
- 工作区:用户本地直接编辑的项目目录,是文件修改的发生地。
- 暂存区:用于临时存放待提交的文件修改,是工作区与本地仓库之间的过渡区域。
- 本地仓库:存储在用户本地设备的Git数据库,保存项目完整的版本历史与提交记录,断网环境下仍可操作。
- 远程仓库:部署在云端服务器的Git仓库,用于代码的远程备份、共享与协同开发。
2.3 .gitignore文件规范
.gitignore文件用于指定Git无需追踪的文件与目录,避免将非必要文件(如依赖包、编译产物、本地配置文件)纳入版本管理,需在项目初始化阶段配置完成。
基础写法:
# 忽略整个文件夹
node_modules/
.idea/
.vscode/
# 忽略指定后缀的文件
*.log
# 忽略特定文件
.env
.DS_Store
新手可通过 gitignore.io 输入项目类型,直接生成符合规范的.gitignore文件。
三、环境搭建与基础配置
3.1 Git安装
- 打开Git官方下载地址:https://git-scm.com/downloads
- 选择对应操作系统的安装包,下载后按默认配置完成安装。
- 安装验证:打开终端(Windows使用CMD/PowerShell,Mac/Linux使用终端),执行命令
git --version,若输出Git版本号,即为安装成功。
3.2 全局基础配置
Git的全局配置用于标记提交者的身份信息,所有本地仓库的提交都会默认使用该配置,安装完成后需优先配置。
设置全局用户名
设置全局用户邮箱
# 配置全局用户名,建议与远程代码托管平台的用户名一致
git config --global user.name "你的用户名"
# 配置全局邮箱,建议与远程代码托管平台的注册邮箱一致
git config --global user.email "你的注册邮箱"
配置完成后,可执行以下命令查看所有配置,确认信息无误。
git config --list
3.3 HTTP代理配置
常用的Git托管平台(如Github)在国内的链接稳定性堪忧,一般会使用代理进行链接加速。而Git的代理需要单独设置才可以生效,其中127.0.0.1代表本机,端口请自行查看代理软件。
- 设置代理
git config --global http.proxy 127.0.0.1:7890
git config --global https.proxy 127.0.0.1:7890
- 取消代理
git config --global --unset http.proxy
git config --global --unset https.proxy
3.4 SSH密钥配置(可选)
连接远程仓库支持HTTPS与SSH两种协议,HTTPS协议每次操作需输入账号密码,SSH协议配置完成后可实现免密操作,一般来说现代化编辑器会包括登录和相关引导,这一步可以先跳过。
- 打开终端,执行命令生成SSH密钥对:
ssh-keygen -t ed25519 -C "你的注册邮箱"
- 后续弹出的提示全程按回车确认,无需额外设置。
- 生成完成后,找到对应系统的公钥文件:
- Windows系统:
C:\Users\你的用户名\.ssh\id_ed25519.pub - Mac/Linux系统:
~/.ssh/id_ed25519.pub
- Windows系统:
- 用文本编辑器打开
.pub公钥文件,复制文件内的全部内容。 - 打开远程代码托管平台,进入「设置」-「SSH公钥」页面,将复制的公钥内容粘贴并保存。
- 配置验证:终端执行对应命令,提示认证成功即为配置完成。
# GitHub平台验证
ssh -T git@github.com
# Gitee平台验证
ssh -T git@gitee.com
四、Git核心命令行操作
本章节覆盖Git日常开发全场景的核心命令,按操作流程与使用场景分类说明。
4.1 本地仓库初始化与首次提交
用于将本地已有的项目纳入Git版本管理,是Git使用的起点。
- 终端进入项目根目录:
cd 你的项目目录路径
- 初始化本地Git仓库:
git init
执行后将在当前目录生成隐藏的.git目录,该目录为Git的本地仓库数据库,请勿修改或删除。
- 将文件添加至暂存区:
# 添加项目内所有文件
git add .
# 添加指定文件/目录
git add 文件名/目录名
- 提交暂存区内容至本地仓库,生成版本记录:
git commit -m "提交说明"
-m参数用于添加本次提交的描述信息,需清晰说明本次提交的修改内容,便于后续版本回溯;每次提交会生成唯一的commit ID,作为该版本的唯一标识。
4.2 远程仓库关联与克隆
4.2.1 本地仓库关联远程仓库
用于将本地初始化的仓库与云端远程仓库绑定,实现代码的远程备份与共享。
git remote add origin 远程仓库地址
origin为远程仓库的默认别名,可自定义;- 远程仓库地址支持SSH与HTTPS两种协议,推荐使用已配置免密的SSH地址。
4.2.2 克隆远程仓库至本地
用于将已有的云端远程仓库完整下载到本地,自动完成仓库初始化与远程关联。
git clone 远程仓库地址
执行后将在当前目录生成与远程仓库同名的项目目录,无需额外配置即可直接使用。
4.3 日常修改提交流程
日常开发中最常用的操作流程,用于将代码修改同步至本地与远程仓库。
- 查看当前仓库状态,确认修改的文件:
git status
- 查看文件的具体修改内容:
git diff
- 将修改的文件添加至暂存区:
# 添加指定修改文件
git add 文件名
# 添加所有修改文件
git add .
- 提交至本地仓库,生成版本记录:
git commit -m "提交说明"
- 推送本地提交至远程仓库:
# 首次推送,需设置本地分支与远程分支的关联关系
git push -u origin 分支名
# 已设置关联后的常规推送
git push
4.4 分支管理操作
分支是Git的核心功能,用于隔离不同的开发任务,避免直接在主分支开发导致代码不稳定。主分支(通常为main或master)用于存放稳定可发布的代码,功能开发、bug修复需在独立分支完成后再合并至主分支。
- 查看分支列表:
# 查看本地所有分支,当前所在分支前会标注*符号
git branch
# 查看远程所有分支
git branch -r
# 查看所有本地与远程分支
git branch -a
- 新建分支:
git branch 分支名
基于当前分支的最新提交新建分支。
- 切换分支:
git switch 分支名
旧版Git可使用git checkout 分支名实现相同效果。
- 新建并直接切换至新分支(日常开发常用):
git switch -c 分支名
- 合并分支:
git merge 待合并分支名
将指定分支的修改合并至当前所在分支。例:需将feature分支合并至main分支时,需先切换至main分支,再执行git merge feature。
- 删除分支:
# 删除本地已合并的分支
git branch -d 分支名
# 强制删除本地未合并的分支
git branch -D 分支名
# 删除远程分支
git push origin --delete 分支名
4.5 远程代码拉取
用于拉取远程仓库的最新代码,同步至本地分支,保持本地代码与远程一致。
git pull
该命令会自动拉取当前分支对应远程分支的最新代码,并合并至本地分支,等同于依次执行git fetch(拉取远程代码但不合并)与git merge操作。
4.6 合并冲突处理
4.6.1 冲突产生原因
当两个分支修改了同一文件的同一行内容,Git无法自动判断需保留的内容时,会产生合并冲突,需手动处理后再完成合并。
4.6.2 冲突处理流程
- 合并或拉取代码触发冲突后,执行以下命令查看标记为
both modified的冲突文件。
git status
- 打开冲突文件,Git会在冲突位置添加如下标记:
<<<<<<< HEAD
当前分支的代码内容
=======
待合并分支的代码内容
>>>>>>> 待合并分支名
- 手动编辑冲突文件,删除所有冲突标记,保留最终需要的代码内容。
- 冲突处理完成后,执行以下命令,将修改后的文件添加至暂存区。
git add 冲突文件
- 执行以下命令,完成合并提交。
git commit -m "fix: 解决合并冲突"
理论这一段在IDEA会有可视化窗口进行操作
4.7 版本回退
用于将当前分支回退至指定的历史版本,恢复历史代码状态。
- 查看提交历史,获取目标版本的commit ID:
git log
执行后将按时间倒序展示所有提交记录,包括commit ID、提交人、提交时间、提交说明,取commit ID的前7位即可用于回退操作;按q可退出日志查看。
- 执行版本回退:
# 软回退:仅重置提交记录,差异内容保留在暂存区,不会丢失代码
git reset --soft 目标commit ID
# 硬回退:完全重置至目标版本,后续所有提交与修改都会被删除,需谨慎使用
git reset --hard 目标commit ID
- 若需将回退后的版本同步至远程仓库,执行强制推送:
git push -f
强制推送会覆盖远程仓库的对应分支,仅可在个人专属分支使用,禁止在团队共用的主分支执行该操作。
4.8 临时修改暂存
用于临时保存工作区未完成的修改,无需提交即可切换分支执行其他操作,处理完成后可恢复之前的修改。
# 暂存当前所有修改
git stash
# 查看所有暂存记录
git stash list
# 恢复最近一次暂存的修改,并删除对应的暂存记录
git stash pop
# 恢复指定暂存记录,不删除暂存记录
git stash apply 暂存记录名(如stash@{0})
# 删除所有暂存记录
git stash clear
五、团队协作标准工作流
本规范为中小团队通用的Git协作流程,可有效避免分支混乱与代码冲突,保障主分支代码稳定,新手可直接参照执行:
- 同步主分支最新代码:切换至
main主分支,执行git pull拉取远程最新代码,确保本地主分支为最新状态。 - 新建开发分支:基于最新的
main分支,新建独立的开发分支,分支命名需清晰规范,格式参考:feature/功能名称(功能开发)、fix/问题描述(bug修复)、hotfix/紧急修复内容(线上紧急修复)。 - 分支开发与提交:在新建的开发分支完成开发,按功能节点提交代码,提交说明需符合规范,清晰描述修改内容。
- 同步主分支代码:开发完成后,切换至
main分支拉取最新代码,再切换回开发分支,执行git merge main,将主分支最新代码合并至开发分支,提前处理合并冲突。 - 推送分支与提交合并请求:将开发分支推送至远程仓库,在代码托管平台提交合并请求(Pull Request/Merge Request,简称PR/MR),经团队代码审核通过后,合并至
main主分支。 - 分支清理:分支合并完成后,删除本地与远程对应的开发分支,避免冗余分支堆积。
六、主流IDE的可视化Git操作指南
本章节统一说明VSCode与IntelliJ IDEA系列IDE的可视化Git操作,所有操作均对应上述命令行功能,新手可在掌握核心逻辑后,通过可视化操作简化流程。
6.1 VSCode可视化操作
VSCode内置原生Git支持,无需额外安装插件即可完成全流程Git操作,核心操作入口为左侧活动栏的「源代码管理」面板(快捷键Ctrl+Shift+G)。
- 仓库初始化:打开项目目录后,在「源代码管理」面板点击「初始化存储库」,对应
git init命令。 - 文件暂存与提交:修改的文件会展示在「更改」列表中,鼠标悬浮至文件上点击「+」号即可将文件添加至暂存区(对应
git add命令);在面板顶部的输入框填写提交说明,点击「提交」按钮即可完成本地提交(对应git commit命令)。 - 分支管理:点击编辑器左下角状态栏的分支名称,可打开分支管理面板,完成分支的新建、切换、删除操作,对应
git branch、git switch等命令。 - 拉取与推送:「源代码管理」面板顶部的「↓ 拉取」「↑ 推送」按钮,对应
git pull、git push命令;状态栏的同步图标可同时完成拉取与推送操作。 - 冲突处理:合并触发冲突后,打开冲突文件,VSCode会在冲突位置提供快捷操作按钮,可直接选择「接受当前更改」「接受传入更改」「接受双方更改」完成冲突处理,处理完成后暂存并提交即可。
- 版本历史与回退:可安装「Git History」扩展插件,安装后可在「源代码管理」面板打开提交历史记录,选中目标提交可执行版本回退操作,对应
git log、git reset命令。 - 临时暂存修改:在「源代码管理」面板的「...」更多菜单中,选择「Stash」相关选项,即可完成修改的暂存与恢复,对应
git stash系列命令。
6.2 IntelliJ IDEA系列可视化操作
IntelliJ IDEA及同系列的WebStorm、PyCharm、GoLand等IDE均内置了完善的Git可视化管理功能,操作逻辑统一,核心操作入口为顶部菜单栏的「Git」选项,以及底部工具栏的「Git」面板。
- 仓库初始化:打开项目后,点击顶部菜单栏「VCS」-「Enable Version Control Integration」,在弹窗中选择「Git」即可完成仓库初始化,对应
git init命令。 - 文件暂存与提交:修改的文件会在项目视图中以颜色标记,右键点击项目或对应文件,选择「Git」-「Add」即可添加至暂存区(对应
git add命令);点击顶部工具栏的「√ 提交」按钮,或右键选择「Git」-「Commit Directory」,在弹窗中勾选提交文件、填写提交说明,点击「提交」即可完成本地提交(对应git commit命令)。 - 分支管理:点击编辑器右下角状态栏的分支名称,可打开分支管理面板,完成分支的新建、检出(切换)、合并、删除操作,对应
git branch、git switch、git merge等命令。 - 拉取与推送:顶部工具栏的「↓ 拉取」「↑ 推送」按钮,对应
git pull、git push命令,点击后在弹窗中确认对应分支即可完成操作。 - 冲突处理:合并或拉取触发冲突后,IDE会自动弹出冲突处理窗口,窗口分为三部分:左侧为本地分支代码、右侧为待合并分支代码、中间为最终合并结果,点击代码旁的箭头可将对应内容添加至结果区,编辑完成后点击「应用」即可完成冲突处理。
- 版本历史与回退:打开底部「Git」面板,切换至「Log」标签,即可查看完整的提交历史,右键选中目标提交,选择「将当前分支重置到此处」,即可选择对应的重置模式完成版本回退,对应
git log、git reset命令。 - 临时暂存修改:右键点击项目,选择「Git」-「Stash Changes」即可暂存当前修改;选择「Git」-「Unstash Changes」即可恢复暂存的修改,对应
git stash系列命令。



Comments NOTHING