Git版本控制工具(一)
一、Git安装Linux-centos安装命令sudoyum-yinstallgit检查版本安装完成后查看git版本,有版本信息说明安转成功。git--versionLinux-ubuntu安装命令sudoapt-getinstallgit-y检查版本git --versionWindows:打开cmd,输入一下安装命令wingetinstall--idGit.Git-e--sourcewinget验证git --version二、Git基本操作1.创建本地仓库命令gitinit当前目录下会创建出一个.git隐藏文件。里面包含了 Git 用来跟踪和管理文件修改历史的所有核心数据和细节不能修改里面的任何内容。2.配置git为什么要配置标识每一次代码提交commit的作者身份表明是谁提交的代码。如何配置?全局配置:在整个Linux机器上都使用该配置信息作为作者身份。gitconfig--globaluser.nameYour namegitconfig--globaluser.emailemailexample.com局部配置只对当前仓库生效。gitconfig--globaluser.nameYour namegitconfig--globaluser.emailemailexample.com确认是否已配置好gitconfig-l有作者身份标识说明就已配置好。删除配置gitconfig[--global]--unsetuser.namegitconfig[--global]--unsetuser.email加上--global就是删除机器上所有的git身份标识。3.工作区、暂存区、版本库工作区写代码界面的左侧目录就是工作区。.git不属于工作区属于Git的版本库。暂存区英文叫stage, 或index。一般存放在 “.git目录下” 下的index文件.git/index中所以我们把暂存区有时也叫作索引index。版本库工作区有一个隐藏目录.git这个不算工作区而是Git的版本库。工作区是本地写代码的地方写完代码后git add [要提交的文件]将工作区内容的修改(新增、删除、修改)添加至版本库.git的暂存区修改的工作区内容会写入版本库的一个新的git对象中有许多的新的git对象创建形成对象库(objects)暂存区储存的就是git对象的指针然后 git commit -m “描述本次修改的信息”将暂存区内容提交至当前所在分支git branch查看下这一步才会被正式写到版本库中成为一条可以随时追踪和还原的历史记录最后git push origin 当前的分支将修改的代码推送至远程仓库。4.添加文件到版本库添加文件到版本库必须经历git add和git commit后才会被正式写入到版本库中。为什么要有git add 和git commit 操作只有git add 不也可以吗理论上可以但是这样效率很低。使用git add 和git commit 操作可以多次修改不同的文件分批使用 git add 把它们放到暂存区最后确认无误后再用 git commit 一次性把它们作为一个完整的版本提交上去。1)添加到暂存区添加一个文件或多个文件到暂存区git add [file1] [file2] ...添加指定目录到暂存区git add [dir]添加当前目录的所有改动到暂存区git add .2)提交到版本库git commint -m 描述本次修改的信息描述信息尤为重要描述本次做了哪些修改可以更好的对历史版本管理。3)查看历史提交记录git log:显示从近到远的提交日志。git log --prettyoneline显示更简洁的提交日志。可看到提交日志变简洁了每条日志包含commit id、提交描述信息。注commit id是用SHA1计算的一个非常大的数字并用16进制表示了出来。查看.git文件GIt就是根据.git隐藏文件做版本管理里面包含了 Git 用来跟踪和管理文件修改历史的所有核心数据和细节其中 HEAD 是 Git 中一个指针它表示当前所在的位置可以查看HEAD是什么可以知道它指向当前分支master而当前分支maseter中的内容是什么呢?查询得知是最近一次提交的commit id。commit id就是对象库中的一个git对象的索引。通过commit id查看git对象中内容命令git cat-file -p commit id查看最新commit id所指向git对象中的内容里面有上一次提交的commit id,和tree 对象,还有作者是谁、是谁提交的tree 对象是 Git 中保存目录结构的对象它记录“这个目录里面有哪些文件和子目录”。通过进入tree对象就能一步步的找到当前版本中所有的信息。查看tree对象中的内容管理了本目录下的文件和目录。由于最新一次提交正是改变了README.md文件中的内容。所以我们通过.git版本库追溯到上一个版本的README.md。可以发现最新一次的提交正是删除了README.md文件中的一些信息。追溯到上一个版本后还原了之前删除的信息。5.状态查询:命令git status作用查看当前仓库的状态。告诉我们当前在哪个分支、哪些(工作区)文件被修改了、哪些文件已经暂存、哪些文件还没有提交。Git status中的常见状态状态含义modified文件被修改untracked新文件Git未跟踪staged已进入暂存区nothing to commit没有需要提交的内容ahead本地领先远程behind本地落后远程6.显示差异git diff 是 Git 的“代码变化查看器”用于在提交前确认自己改了什么。1)显示目前工作区和暂存区之间的差异命令git diff [文件名]作用查看具体代码变化。 -307,6 307,14 namespace chat_server {,这是 diff 定位信息,格式 -旧文件位置,旧代码数量 新文件位置,新代码数量 解释-307,6 旧版本 从第307行开始 显示6行 307,14 新版本 从第307行开始 显示14行2)显示暂存区和commit之间的差异命令git diff --cached3显示当前工作区和最新commit之间的差异命令git diff HEAD4比较两个版本差异命令git diff commit1 commit25比较两个分支命令git diff 分支1 分支27.版本回退也可回退到当前版本应用场景常用于撤销 commit、版本回退、重新整理提交命令git reset [--soft | --mixed | --hard] [HEAD]HEAD说明可以写commit id,表示指定退回的版本。HEAD表示当前版本HEAD^表示上一个版本HEAD^^表示上上一个版本以此类推HEAD~0表示当前版本HEAD~1表示上一个版本HEAD~2表示上上一个版本以此类推注--hard慎用回退后之前的所有修改代码将会丢失。--mixed是默认选项如果执行了git reset --hard commit_id,后悔了怎么办使用git reflog命令查看本地的每一次命令。可以使用局部的commit id也可以回退。版本回退的本质修改分支(master)指向的commit id,即完成了版本回退。8.撤销修改我们在开发时发现自己写的代码很烂或写出了很多新的BUG,想恢复到上一个版本重新开发这时候就需要用到撤销修改了。撤销修改对应了三种情况只在工作区写了代码没有提交至暂存区在工作区写了代码提交到了暂存区但是没有提交到版本库在工作区写了代码提交到了暂存区也提交到了版本库解决方式9.删除版本库中的文件对于已经提交到版本库中的文件使用rm filename,只能删除当前工作区中的文件版本库中的文件并没有删除。需要将删除的文件经过git add 删除的文件名再git commit -m delete filename后版本库的文件才被删除。或则使用git rm 删除的文件名这条命令帮我们做了两件事一是在工作区中删除文件二是在暂存区中删除文件。然后再执行git commit -m “delete filename”版本库的文件才被删除。最后git push远程同步删除文件。

相关新闻

PP_计划订单_增强字段BAPI没有

PP_计划订单_增强字段BAPI没有

1、创建计划订单bapi,发现bapi没有增强结构2、通过增强点实现增强字段赋值:

2026/10/10 16:37:39 阅读更多 →
用 Solidity 写一个待办事项合约:从需求到代码的完整思考过程

用 Solidity 写一个待办事项合约:从需求到代码的完整思考过程

上一篇我留了一道自测题:写一个管理"待办事项列表"的合约,支持添加、完成、删除、查询,每个待办有创建时间戳和完成状态,只有创建者能操作自己的待办。这一篇就是这道题的完整解答。但我不想只给你一份能跑的代码——我…

2026/10/12 4:44:04 阅读更多 →
Java数组入门:从定义到遍历全解析

Java数组入门:从定义到遍历全解析

Java学习记录 日期:10.8~9 📖今日知识点 ——什么是数组? 数组:是一种容器,可以用来存储同种数据类型的多个值 (变量能干的,数组能干;变量不能干的,数组能干;…

2026/10/12 0:56:03 阅读更多 →

最新新闻

OpenClaw技能合集:从Clawdbot到Moltbot的Agent Skill精选与TaoToken接入实践

OpenClaw技能合集:从Clawdbot到Moltbot的Agent Skill精选与TaoToken接入实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 4:43:48 阅读更多 →
模型上下文协议(MCP)实战:用 TaoToken 统一 Key 打通 Cline MCP 工具链

模型上下文协议(MCP)实战:用 TaoToken 统一 Key 打通 Cline MCP 工具链

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 4:43:48 阅读更多 →
从前端到全栈:用Mastra打造带记忆的客服Agent

从前端到全栈:用Mastra打造带记忆的客服Agent

去年年底,我接到一个任务:给后台管理系统加一个智能客服入口。当时我还没从"纯前端"的舒适区里出来,第一反应是——这不就是接个大模型 API,把用户问题丢过去,再把返回文本显示出来吗?后来真正动…

2026/10/12 4:43:48 阅读更多 →
Playnite 游戏库管理指南:把多平台游戏集中到一个界面

Playnite 游戏库管理指南:把多平台游戏集中到一个界面

Playnite 游戏库管理指南:把多平台游戏集中到一个界面 【免费下载链接】Playnite Video game library manager with support for wide range of 3rd party libraries and game emulation support, providing one unified interface for your games. 项目地址: htt…

2026/10/12 4:43:48 阅读更多 →
CS2卡顿、掉帧、闪退、黑屏?一套系统级排查流程帮你定位根源

CS2卡顿、掉帧、闪退、黑屏?一套系统级排查流程帮你定位根源

先说个现象。CS2 每次大更新之后,社区里讨论得最热烈的往往不是战术配合,而是"为什么我又卡成 PPT 了"。我翻了一下后台的高频问题,卡顿、掉帧、闪退、黑屏卡死这四个词基本能覆盖九成以上的求助帖。但有意思的是,很多人…

2026/10/12 4:43:48 阅读更多 →
SpringBoot+Vue+MySQL学生宿舍管理系统全栈项目实战解析

SpringBoot+Vue+MySQL学生宿舍管理系统全栈项目实战解析

每个做过毕设或课设的人心里都清楚,选对一个项目方向意味着什么。不是越难越好,而是难度刚好卡在答辩能讲清楚、自己也能hold住的区间。这几年Java方向的项目里,“SpringBootVueMySQL”已经成了学生宿舍信息管理系统这类业务系统的标准配置。…

2026/10/12 4:42:48 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →