
一、认识 GitGit 其实就是个版本控制工具多人协作工具等一般用于公司的开发和文档的编写。1、可以进行多人协作开发写作2、可以有历史记录随时回退到任意时刻1、Git的介绍Git的创始人是Linus Torvalds 也是Linux的创始人。 行业内比较有名的版本控制工具 CVS(老了) SVN(还行在git之前很火) Git(刚开始只有Linux) StarTeam(收费的) 总结目前市场上使用的是SVN和GitSVN是集中式版本控制系统版本库是集中放在中央服务器的。Git是分布式版本控制系统那么它就没有中央服务器的每个人的电脑就是一个完整的版本库这样工作的时候就不需要联网了因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库那多个人如何协作呢比如说自己在电脑上改了文件A其他人也在电脑上改了文件A这时你们两之间只需把各自的修改推送给对方就可以互相看到对方的修改了。大白话来讲 你如果使用Git ,你的本地就会有一个本地库代码可以提交到本地库里面。比如 Hello.py 提交到本地库过了两天又提交了Hello.py 到本地库Git 如果自己使用是完全可以的不需要中央服务器。 如果使用的是SVN,你写了一个Hello.py 要提交到中央服务中因为本地没有本地库。所以没办法工作。二、Git的安装下载链接https://git-scm.com/download下一步下一步安装即可安装完之后起始就可以使用了只是必须使用 命令才能操作。验证安装命令git --version不想学命令可以直接跳过。可以使用图形化界面工具操作Git。完整安装完毕后在系统右键菜单中会出现git的菜单项。2.1 对比Git 与 GitHub、Gitee 的区别名称 作用Git 安装在电脑上的版本控制工具本地管理代码版本GitHub / Gitee 在线保存和共享 Git 仓库的代码托管平台用于团队协作和代码备份在本案例中我们用 Git 管理todo-app的每次修改后面再把它上传到 GitHub 或 Gitee即使暂时没有网络本地仍然可以提交和查看历史版本。TortoiseGit (git 的图形化界面做的最专业)它是一款给Windows系统用的Git图形化工具不用敲命令行点点鼠标就能完成代码提交和同步特别适合新手上手。GitLab开源的代码托管网站部署在企业内网服务器即可使用适配企业私有化部署需求。三、Git 的四个核心区域Git 四大区域流转逻辑图文字复刻工作区编辑文件 ➡️git add➡️ 暂存区临时存储 ➡️git commit➡️ 本地仓库永久保存版本 ➡️git push➡️ 远程仓库云端共享工作区 │ git add ▼ 暂存区 │ git commit ▼ 本地仓库 │ git push ▼ 远程仓库工作区当前正在编辑的项目原始文件暂存区本次准备提交的修改临时存放待保存内容本地仓库本地永久保存的所有版本历史记录远程仓库云端共享仓库用于团队协作、代码备份。二、课前配置第一次使用 Git 时需要设置提交者姓名和邮箱不是任何平台的账户和密码而是代码提交的身份标识方便团队追溯代码作者git config --global user.name 你的姓名 git config --global user.email 你的邮箱检查配置是否生效git config --global --list姓名和邮箱会永久记录在每一次提交记录中与 GitHub/Gitee 登录账号密码无关。三、创建项目并保存第一个版本3.1 创建项目并初始化仓库我们先创建todo-app项目目录并进入该目录此时它只是一个普通文件夹通过命令让Git接管项目git init git branch -M mainGit 会自动创建隐藏的.git目录用来存储所有版本数据。补充说明Git 旧版本默认主分支名叫master目前行业统一规范使用main-M代表强制重命名分支已有master分支直接改名无则创建main分支。3.2 创建项目基础文件在项目根目录创建README.md项目说明文件# Todo App 一个简单的待办事项项目。再创建tasks.md任务清单文件# 待办事项 - 学习 Git 基础命令3.3 观察工作区文件状态查看当前项目文件Git追踪状态git status文件状态分类未跟踪红色Git 还没纳入管理的新文件已修改红色已追踪但改动未暂存暂存区绿色已经add、等待提交的文件。简洁版状态查询日常高频使用git status --short常见状态标记说明标记 含义??未跟踪的新文件M文件已修改未暂存A新文件已暂存待提交D文件已删除3.4 暂存待提交文件将新建的两个文件加入暂存区标记为本次待提交内容git add README.md tasks.md再次查看状态确认文件已进入暂存区git status核心认知git add不只是“添加新文件”本质是筛选本次需要提交的所有修改。3.5 创建第一次版本提交提交前先复查暂存区所有修改内容避免提交错误代码git diff --staged确认无误后正式提交版本到本地仓库git commit -m docs: 创建待办事项项目再次查看工作区状态git status显示工作区干净代表所有修改已永久保存到本地仓库。查看精简版提交历史git log --oneline本阶段完整命令链git init git branch -M main git status git add README.md tasks.md git diff --staged git commit -m docs: 创建待办事项项目 git log --oneline核心流程创建仓库 → 检查文件状态 → 筛选修改 → 提交前复查 → 保存版本 → 查看历史四、修改项目并对比代码差异新增需求为待办事项补充两条学习任务修改tasks.md文件内容# 待办事项 - 学习 Git 基础命令 - 学习 Git 分支 - 将项目上传到远程仓库第一步查看文件修改状态git status第二步查看工作区具体修改内容工作区 vs 暂存区差异git diff第三步确认修改无误将改动加入暂存区git add tasks.md第四步查看暂存区待提交的最终修改暂存区 vs 本地仓库差异git diff --staged第五步提交新版本保存修改git commit -m docs: 补充学习任务查看两次完整提交记录git log --oneline本阶段完整命令链git status git diff git add tasks.md git diff --staged git commit -m docs: 补充学习任务 git log --oneline开发好习惯先查状态、再对比差异确认无误后暂存提交前二次检查五、忽略无需提交的文件开发过程中部分敏感配置、日志、编辑器缓存文件无需版本管理可通过.gitignore文件统一忽略。常见无需提交的文件.env本地密码、私密配置文件debug.log程序调试日志文件编辑器缓存、项目依赖、构建产物目录在项目根目录新建.gitignore文件写入通用忽略规则# 环境变量和敏感配置 .env # 日志文件 *.log # 依赖和构建目录 node_modules/ dist/ # 编辑器配置缓存 .idea/ .vscode/检查文件状态忽略文件不会被Git追踪git status将忽略规则文件提交到版本库永久生效git add .gitignore git commit -m chore: 添加 Git 忽略规则核心注意.gitignore仅对未被Git追踪的文件生效已提交过的文件无法直接忽略。六、使用分支开发新功能分支核心作用隔离开发环境新功能、高危修改在独立分支开发不影响main主分支稳定代码开发完成后再合并规避线上代码风险。6.1 创建功能分支开发前先确认主分支工作区干净无未提交修改git status创建并切换到专属功能分支规范命名feature/功能名git switch -c feature/priority参数说明feature标识新功能开发分支priority本次开发功能任务优先级-ccreate 创建分支并立刻切换到该分支补充命令切换已有分支git switch 分支名旧版等价命令git checkout -b 分支名Git2.23以下版本使用查看所有本地分支确认当前所在分支git branch带*的分支为当前正在使用的分支。6.2 功能分支开发与提交在功能分支修改tasks.md为任务添加优先级# 待办事项 - [高] 学习 Git 基础命令 - [中] 学习 Git 分支 - [低] 将项目上传到远程仓库按照标准流程提交修改git status git diff git add tasks.md git commit -m feat: 为任务添加优先级此时新功能仅保存在feature/priority分支主分支代码不受影响。6.3 分支合并与清理功能开发完成切换回主分支git switch main将功能分支代码合并到主分支git merge feature/priority查看完整分支合并历史可选git log --oneline --graph --decorate --all合并完成后删除无用的功能分支保持仓库整洁git branch -d feature/priority参数说明-d仅删除已成功合并的本地分支安全无风险。本阶段完整命令链git switch -c feature/priority git add tasks.md git commit -m feat: 为任务添加优先级 git switch main git merge feature/priority git branch -d feature/priority核心流程创建隔离开发环境 → 开发提交 → 回归主线 → 合并功能 → 清理废弃分支Git核心命令汇总git init 初始化本地项目仓库 git add 将修改加入暂存区 git commit 暂存区内容提交到本地仓库 git log 查看版本提交日志 git branch 查看/管理本地分支 git switch 切换/创建分支 git status 查看工作区、暂存区状态 git diff 对比工作区与暂存区、暂存区与本地仓库差异七、将项目上传到远程仓库目前所有版本仅保存在本地接下来将本地项目同步到Gitee/GitHub远程仓库实现代码备份与团队协作。前置操作打开 https://gitee.com/注册账号并新建空仓库无自带文件、无README、无许可文件。7.1 关联远程仓库查看当前本地远程仓库关联状态首次无关联git remote -v绑定远程仓库替换为自己的Gitee仓库地址git remote add origin 你的仓库地址示例地址gitgitee.com:yanzhenwei/todo-app.git再次查看确认关联成功git remote -v7.2 首次推送本地代码到远程首次推送本地main分支到远程仓库git push -u origin main参数详解origin远程仓库默认别名main待推送的本地分支-u–set-upstream绑定本地与远程分支关联首次推送必加绑定后后续推送直接简写git push无需重复写完整参数。7.3 团队成员获取与同步项目新成员首次参与项目无需初始化仓库直接克隆远程完整项目git clone 你的仓库地址 cd todo-app开发前同步远程最新代码保证本地版本最新git switch main git pull团队开发流程新建专属功能分支开发 → 提交本地 → 推送远程分支 → 提交PR合并git switch -c feature/deadline git add . git commit -m feat: 为任务添加截止日期 git push -u origin feature/deadlinePR合并完成后本地同步、清理分支git switch main git pull git branch -d feature/deadline团队协作标准主线更新本地main分支 → 创建功能分支 → 开发提交 → 推送远程 → 提交PR合并 → 同步主线 → 清理废弃分支八、代码冲突产生与解决冲突核心成因两个分支/多人基于同一旧版本修改了同一个文件的同一行/相邻代码块Git无法自动判断最优代码需要人工手动合并。仅修改不同文件、同一文件不同行不会产生冲突。8.1 模拟冲突场景1、基于main分支新建演示分支修改项目描述git switch main git switch -c feature/description修改README.md第二行一个适合个人使用的待办事项项目。git add README.md git commit -m docs: 修改项目描述2、切换回main主分支修改同一行代码git switch main修改README.md第二行一个帮助学生管理学习任务的项目。git add README.md git commit -m docs: 补充项目适用场景8.2 触发并解决冲突合并演示分支触发代码冲突git merge feature/description冲突文件自动生成标记 HEAD 一个帮助学生管理学习任务的项目。 一个适合个人使用的待办事项项目。 feature/description标记说明 HEAD本地main分支代码代码分隔线 分支名待合并分支代码人工整理代码删除冲突标记保留最终内容一个帮助学生管理个人学习任务的待办事项项目。标记冲突解决重新提交版本git add README.md git commit -m merge: 解决项目描述冲突删除废弃演示分支git branch -d feature/description放弃本次合并未解决冲突时使用git merge --abort核心认知冲突不是代码损坏是Git无法自动择优需要人工干预合并。九、IDE工具IDEA/PyCharm中Git可视化使用主流IDEPyCharm、IDEA、Eclipse均内置Git可视化功能无需频繁敲命令鼠标操作即可完成所有Git操作适合新手使用。1.1 IDE中配置GitIDE配置Git完整步骤文字复刻打开 IDE 设置File - Settings找到 Version Control - Git选择本地 Git 安装路径git.exe点击 Test 测试连通性显示 Success 即配置完成。打开IDE设置找到Version Control绑定本地安装的Git程序路径测试连通性即可完成配置。1.2IDE安装Gitee插件步骤1. IDE 设置中找到 Plugins 插件市场2. 搜索关键词【Gitee】官方插件3. 点击 Install 安装重启IDE生效4. 登录个人Gitee账号授权即可在IDE内管理远程仓库。在IDE插件市场搜索「Gitee」安装官方插件后重启IDE即可支持Gitee仓库关联与操作。登录个人Gitee账号完成插件授权即可在IDE内直接管理Gitee远程仓库。在IDE插件市场搜索「Gitee」安装官方插件后重启IDE即可支持Gitee仓库关联与操作。登录个人Gitee账号完成插件授权即可在IDE内直接管理Gitee远程仓库。在IDE插件市场搜索「Gitee」安装官方插件后重启IDE即可支持Gitee仓库关联与操作。本地项目推送Gitee完整流程文字复刻本地初始化仓库 → 代码提交本地仓库 → 关联Gitee远程仓库 → 首次绑定分支 → 推送代码到云端 → 远程仓库同步完成。登录个人Gitee账号完成插件授权即可在IDE内直接管理Gitee远程仓库。安装完成后登录Gitee账号并授权1.3 核心使用场景1、本地项目上传至GiteeGit Bash 执行ssh-keygen -t rsa生成密钥打开用户目录 .ssh 文件夹复制公钥 id_rsa.pub 全部内容Gitee个人设置-安全设置-SSH公钥粘贴保存完成免密配置。IDE可视化推送项目操作步骤VCS - Git - Push 打开推送面板选择要推送的分支确认远程仓库地址点击Push一键推送代码到Gitee远程仓库。复制公钥内容进入Gitee个人设置-安全设置-SSH公钥粘贴保存完成免密配置。打开Git Bash执行命令生成公私钥ssh-keygen -t rsa复制公钥内容进入Gitee个人设置-安全设置-SSH公钥粘贴保存完成免密配置。IDE克隆远程项目步骤文字复刻2 IDE推送项目到Gitee开源项目克隆注意事项文字复刻开源项目仅可克隆查看无推送权限如需修改需 Fork 到自己仓库再克隆私有仓库进行开发推送。IDE可视化解决代码冲突教程文字复刻冲突弹窗自动区分本地代码Your、远程代码Theirs支持三种操作保留本地、保留远程、手动合并双方代码编辑完成后提交即可解决冲突。IDE会直观展示本地、远程差异代码一键对比、合并轻松解决冲突。IDE分支可视化管理面板文字复刻IDE底部Git面板可查看所有本地/远程分支、当前所在分支、提交记录、代码差异支持可视化创建、切换、合并、删除分支无需敲命令。推送报错核心解决办法推送被拒绝大概率是远程仓库非空自带README/LICENSE必须使用全新空仓库绑定推送。IDE会直观展示本地、远程差异代码一键对比、合并轻松解决冲突。2、克隆远程项目到本地团队成员操作普通开发人员无需初始化仓库直接克隆团队远程项目即可.gitignore文件失效解决方案图文文字复刻常见问题配置忽略文件后依然能看到.idea等缓存文件原因这些文件在配置.gitignore之前已经被Git追踪、加入暂存区忽略规则仅对未追踪文件生效。解决办法执行命令git rm -r --cached .清空已追踪缓存重新 add、commit忽略规则永久生效。克隆他人开源项目操作Git 完整项目开发总流程全景复盘# 1. 初始化项目 git init git branch -M main # 2. 保存初始版本 git status git add README.md tasks.md git commit -m docs: 创建待办事项项目 # 3. 修改并迭代版本 git diff git add tasks.md git commit -m docs: 补充学习任务 # 4. 分支隔离开发新功能 git switch -c feature/priority git add tasks.md git commit -m feat: 为任务添加优先级 git switch main git merge feature/priority git branch -d feature/priority # 5. 远程仓库同步与团队协作 git remote add origin 仓库地址 git push -u origin main git pull原因这些文件在配置.gitignore之前已经被Git追踪、加入暂存区忽略规则仅对未追踪文件生效。解决办法撤回暂存区已追踪的缓存文件重新提交忽略规则即可正常生效。3、同步团队成员最新代码与解决冲突团队多人开发时他人提交代码后本地未同步新版本、同时修改同文件推送会触发冲突报错常见问题配置忽略文件后依然能看到.idea等缓存文件原因这些文件在配置.gitignore之前已经被Git追踪、加入暂存区忽略规则仅对未追踪文件生效。解决办法撤回暂存区已追踪的缓存文件重新提交忽略规则即可正常生效。IDE会直观展示本地、远程差异代码一键对比、合并轻松解决冲突。# 1. 初始化项目 git init git branch -M main # 2. 保存初始版本 git status git add README.md tasks.md git commit -m docs: 创建待办事项项目 # 3. 修改并迭代版本 git diff git add tasks.md git commit -m docs: 补充学习任务 # 4. 分支隔离开发新功能 git switch -c feature/priority git add tasks.md git commit -m feat: 为任务添加优先级 git switch main git merge feature/priority git branch -d feature/priority # 5. 远程仓库同步与团队协作 git remote add origin 仓库地址 git push -u origin main git pull解决方式IDE可视化对比本地与远程代码手动合并后重新提交推送。1.4 IDE可视化分支操作IDE左下角可快速查看、切换、创建、合并、删除分支全程可视化操作1.5 IDE中.gitignore忽略文件生效问题常见问题配置忽略文件后依然能看到.idea等缓存文件原因这些文件在配置.gitignore之前已经被Git追踪、加入暂存区忽略规则仅对未追踪文件生效。解决办法撤回暂存区已追踪的缓存文件重新提交忽略规则即可正常生效。常见问题配置忽略文件后依然能看到.idea等缓存文件原因这些文件在配置.gitignore之前已经被Git追踪、加入暂存区忽略规则仅对未追踪文件生效。解决办法撤回暂存区已追踪的缓存文件重新提交忽略规则即可正常生效。十、完整案例开发流程回顾# 1. 初始化项目 git init git branch -M main # 2. 保存初始版本 git status git add README.md tasks.md git commit -m docs: 创建待办事项项目 # 3. 修改并迭代版本 git diff git add tasks.md git commit -m docs: 补充学习任务 # 4. 分支隔离开发新功能 git switch -c feature/priority git add tasks.md git commit -m feat: 为任务添加优先级 git switch main git merge feature/priority git branch -d feature/priority # 5. 远程仓库同步与团队协作 git remote add origin 仓库地址 git push -u origin main git pull