廖雪峰的GIT教程的笔记
学习目标新公司需要Git进行版本管理学习加记录首先要安装Git这个百度这里就不讲学习内容一、建立仓库仓库就是保存你上传文件的地方你可以简单理解成一个目录这个目录里面的所有文件都可以被Git管理起来每个文件的修改、删除Git都能跟踪以便任何时刻都可以追踪历史或者在将来某个时刻可以“还原”要存的东西就得放到仓库里本地版1.新建一个文件夹先在本地电脑建一个文件夹作为仓库打开Git Base软件;但是可以看到 Git Base一开始的操作地址是默认的但是接下来的操作都需要在这个文件夹的地址里操作这时候就有两种方法把Git Base的操作地址改成新建的仓库文件夹1.因为Git最开始是为了Linux的所以可以直接使用Linux的cd命名去到指定文件夹可以看到就到了新建的文件夹了2.直接在新建文件夹鼠标右键有一个 open Git Base Here,点击这个就会在当前文件夹打开Git Base2. Git init这个语句就是设置当前文件夹为仓库Git init回车之后会自动出现Initialized empty Git repository in D:/GitTest1/.git/提示ok了二、 添加到库1.git add在文件夹里随便创建两个文件因为add这个指令可以添加多个文件回车之后没有回应2.git commit -mxxx上面的add还只是上传到暂存区这个就是把暂存区里的都上传到库里xxx就是本次上传写的注释最好写清楚这次上传的文件都更新了什么回车之后会返回[master (root-commit) e2d4fa2] 第一次添加了两个文件2 files changed, 2 insertions()create mode 100644 test.txtcreate mode 100644 test1.txt返回内容解析2 file changed2个文件被改动我们新添加的2个文件2 insertions插入了两行内容两个文件各一行总共两行。3. git status可以获取当前仓库的状态比如这时候我们修改了文件但是没有提交add就可以看到提醒有一个文件改了但是没有上传文件名字就是红色如果仓库里干干净净如果刚把文件ADD到暂存区暂存区里有东西文件名字就是绿色4. git diff使用git status 可以知道改了没有上传但是不能知道详细的改了什么这时候就需要diffdifference的缩写指令可以看到加了两个two如果是删除的话会是-开头单diff对比的是工作区和暂存区的版本如果要看刚改的工作区文件或者是暂存区的文件和本地仓库的做对比呢在Git中使用大写的HEAD来表示当前本地仓库的版本使用可以使用git diff HEAD来对比还有一个比较使用的就是比较两个提交过的版本的区别git diff 版本号1 版本号2对比两个历史提交版本之间的差异# 比较两次提交之间所有改动 git diff 68c6698 3ad4539三、版本回退1、工作区、暂存区、本地仓库在回退之前要明白三个使用到的区域1.工作区工作区是你写代码的地方在这个地方写完之后Git只知道你改了东西但是不会帮你记录这个代码只保存在你本地2.暂存区这个是Add之后就会先存在暂存区3.本地仓库在你使用Commit把暂存区的文件提交之后就是提交到这里2.git log获取提交的所有记录这样太长了可以使用 Git log --oneline来获取短的日志信息这些log日志每次提交记录的这一大串比如e2d4fa260b2d6ce6a541e1aabad0ad0ad77a77c8这就是版本号后面要想回退到某个版本就需要这个版本号log看完之后按q退出日志界面3.git show这个就是展示当前仓库的文件可以使用HEAD查看当前版本还有注释信息文件内容就是这一次新加了什么内容HEAD^查看上一个版本以此类推4.git reset首先要知道在git中用大写的HEAD来表示仓库当前的版本要是是一个版本就是HEAD^再上一个就是HEAD^^,再往前比如说往前100个要是角标就太多了所以是HEAD~100;回退有三种方式1.--soft这种回退是把当前仓库里的版本回退工作区和暂存区的不变而且会把回退的版本重新返回到暂存区里就是如果你是commit的备注没写对的话就可以使用这个重新把文件回退到暂存区再使用commit重新写备注可以看到使用之后再去查看状态就发现文件回到暂存区里了2.--mixed这个回退是除了工作区其他的都回退可以看到会之后再查看状态就是只改了本地文件没有Add有没有commit的状态这个有简写状态也就是这个是系统默认的git reset --mixed HEAD git reset HEAD;还可以指定文件回退git reset HEAD test.txt这个适合就是写错了某个文件并且上传到了暂存区或者上传到了仓库就可以指定文件回退到工作区3.--hard这个回退就是彻底回退了包括本地文件都会一起回退5 git reflog回退使用HEAD来回退的时候要知道具体的第几次的版本有的时候不太记得了这时候就可以直接使用要回退的版本号来回退但是你也不知道之前回退了的版本号了啊这时候你可能想用log来查看log日志但是回退之后的log也会一起删除就只剩下最开始的两次提交了这时候就要使用reflogreflog可以查到本地电脑上90天的操作这时候就可以配合reset回退删掉的版本log由于删除前看看要回退到哪个版本reflog适合回退错了要回退这个回退6.git restore 撤销 / 恢复文件专用命令这个是专门用来操作 暂存区和本地文件的1.git restore 文件名用于回退没有上传到暂存区的本地文件使用回退工作区之后2.git restore --staged 文件这个是把文件从暂存区退回工作区取消暂存可以用于rm删除之后恢复3.git restore --source版本号 文件从历史提交恢复文件尤其是恢复具体一个文件的时候就用这个四 删除1 git rm这个就是删除本地文件而且会把删除这个文件删除到暂存区这时候还可以通过 restore恢复但是恢复的是之前add或者commit了的版本要先$ git restore --staged test.txt来把删除之后上传到暂存区取消之后再restore来回退本地操作如果rm删除之后还commit了这时候就只能从历史版本里恢复就要先reflog知道版本号再用restore五、远程仓库远程仓库可以是公司的还可以是自己在github上创建自己来测试学习下面的就全是在github上测试的5.1 git push这是把本地仓库的推送到远程仓库上origin的话是默认代表远程仓库的代号这个是可以自己再去重新设置的把本地仓库里所有的东西都推送上去 git push -u origin master使用上面这个指令不只是会全部推送还会把本地的master和远程仓库里的master联系起来如果不联系起来的话push会报错要重新联系之后再改了推送具体的分支 $ git push origin master git push origin dev5.2 git clone 【地址】这个是从远程仓库克隆到本地$ git clone gitgithub.com:michaelliao/gitskills.git5.3 分支分支就相当于从某一个时间节点分裂出一个平行宇宙两个平行宇宙拥有一模一样的历史、一模一样的代码在公司就是有一个主的master分支里面负责放已经稳定的版本其他人要改或者添加新东西就先clone主的master分支再在自己电脑上创建一个自己的工作dev分支这样改东西哪怕是改错了或者该丢了都不影响主的master分支自己测试完了觉得ok了再把dev分支合并到主分支上这样dev改的内容就到主分支上了5.3.1 分支图像化在前面可以知道commit之后就是添加了一个时间节点HEAD就是最新版本其实HEAD指向的不是当前分支的最新版本而是指向当前分支由分支指针来指向最新版本再创建一个分支devHEAD就是指向最新这个分支dev指针这时候在当前分支comiit一个新版本就是dev指针往前这时候要合并了在git里就是把master指针指向当前最新的操作HEAD也指向master指针就好了这就是为什么在合并指针之后如果不删除的话dev分支会一直保持当前状态删掉的话就是删掉dev指针5.3.2 git switch -c创建分支的话旧版本是git checkout最新的是git switch -c name可以看到创建分支之后里面就是当前分支名字注意基于一个分支创造另外一个分支的话要在第一个分支下创造5.3.3 git switch name切换分支要去哪个分支就填哪个分支的名字5.3.4 git branch这个是查看当前有哪些分支,*name就是代表当前是哪个分支5.3. 5分支注意的问题可以看到在dev分支下改了文件注意要是分支上改了文件但是没有commit再切换到主分支也会一起带过去现在就是在dev上改的可以看到切换到master后一起带过去了文件改了没commit5.3.6 git merge在dev分支修改了文件可以看到在master分支上并没有还是在修改前的版本这时候就需要合并注意要把a分支合并到b分支上就得先切换到b分支注意上面的合并是快速合并5.3.7 git restore -d name不需要的分支可以通过这个删除5.3.8 合并冲突如果在两个分支对同一个文件都有修改提交这时候再合并就会报错了这时候在报错的文件里会自动把不一样的地方画出来HEAD的部分就是当前分支的就是分界线,dev就是另外一个分支的可以看出两个对比前三行都一样是第四行开始不一样了master分支的是threeworkingchangedev的changeworking这时候就看你要哪个版本的了保留需要的版本把标志和不需要的都删掉比如要master的就改完之后就按照流程add再commit六、git stash临时去别的分枝干活现在手头这个分支的活又没干完没办法提交比如working到一半要临时去主分支帮忙改bug可以看到当前分支的还没干完所以没有提交1. git stash save “xxx”可以添加一些注释方便等一下回来知道现在改到哪里了这时候再看工作区就是干净的了可以切换到别的分支干活了之后就可以回到主分支再开个新分支去修改bug了还可以使用ls来看看分支有哪些文件修改提交好了就回到主分支把修改bug分支上改好的合并2. git stash pop之后再回到之前工作的分支但是之前的工作区已经被储存起来了这时候就需要pop来把之前存的拿出来可以看到还是之前工作的内容3.git stash apply恢复储存出来pop还可以使用applypop是恢复之后会把储存记录删掉apply不会apply和pop都可以恢复指定的储存记录这个需要git stash list来看有多少储存记录git stash apply stash{1}git stash pop stash{1}一些疑问1.指令为什么有些是-有些是---的后面跟着的是一个字母一些简写--后面跟着的完整的单词git commit -m;git reset --hard ;学习时间提示这里可以添加计划学习的时间例如周一至周五晚上 7 点—晚上9点周六上午 9 点-上午 11 点周日下午 3 点-下午 6 点学习产出提示这里统计学习计划的总量例如技术笔记 2 遍CSDN 技术博客 3 篇习的 vlog 视频 1 个

相关新闻

HTML基础与实战:从标签到语义化开发

HTML基础与实战:从标签到语义化开发

1. HTML基础概念解析HTML(HyperText Markup Language)作为构建网页的基础语言,其核心功能在于定义文档的结构和内容。不同于CSS负责样式或JavaScript实现交互,HTML专注于内容的语义化组织。这种分工明确的架构使得Web开发能够保持…

2026/10/15 0:28:53 阅读更多 →
Zepp Life自动刷步数终极指南:如何轻松实现健康数据管理

Zepp Life自动刷步数终极指南:如何轻松实现健康数据管理

Zepp Life自动刷步数终极指南:如何轻松实现健康数据管理 【免费下载链接】mimotion 小米运动刷步数(微信支付宝)支持邮箱登录 项目地址: https://gitcode.com/gh_mirrors/mimo/mimotion 你是否厌倦了每天手动记录步数的繁琐&#xff1…

2026/10/15 0:30:01 阅读更多 →
终极DS4Windows指南:5分钟让PS4手柄在Windows上完美运行 [特殊字符]

终极DS4Windows指南:5分钟让PS4手柄在Windows上完美运行 [特殊字符]

终极DS4Windows指南:5分钟让PS4手柄在Windows上完美运行 🎮 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 还在为Windows游戏无法识别你的PS4手柄而烦恼吗&#x…

2026/10/15 0:27:49 阅读更多 →

最新新闻

从柯西-施瓦兹不等式到匹配滤波:工程直觉与实战避坑指南

从柯西-施瓦兹不等式到匹配滤波:工程直觉与实战避坑指南

简介:这份资料围绕雷达信号处理中的匹配滤波技术展开,从柯西施瓦兹不等式这一数学基础切入,帮助读者理解匹配滤波器的理论来源与工程实现。内容适合具备一定信号处理与线性代数基础的高校学生、科研人员及雷达工程从业者,用于解决…

2026/10/15 0:48:41 阅读更多 →
手写C++ OBJ文件解析器:从格式到百万顶点优化与避坑指南

手写C++ OBJ文件解析器:从格式到百万顶点优化与避坑指南

简介:面向需要处理Wavefront OBJ三维模型格式的开发者和图形学入门者,这份资源提供一套基于Visual Studio 2013的obj解析C源码。源码实现完整的读取流程,覆盖顶点、纹理坐标、法线及多边形面这几类核心指令的解析,通过文件流逐行读…

2026/10/15 0:48:41 阅读更多 →
superpowers:用SKILL.md让Claude Code变身高效率AI开发助手

superpowers:用SKILL.md让Claude Code变身高效率AI开发助手

1. 先搞清楚:superpowers 到底是什么如果你平时用 Claude Code 比较多,可能早就遇到了一个让我当初很头疼的问题:底层模型确实聪明,但你在对话里让它"做个深度调研""写一套完整的单测""把这次的改动整理…

2026/10/15 0:48:41 阅读更多 →
用repomap给Claude Code一张代码地图,工具调用从52次降到3次

用repomap给Claude Code一张代码地图,工具调用从52次降到3次

1. 52 次工具调用到底是怎么花掉的我一直觉得 Claude Code 这类 CLI 编程助手最让人上头的点是“它真的会自己去翻代码库”,但最让人血压升高的点也是“它真的会自己去翻代码库”。刚上手那会儿,我在一个两万行左右的项目里让它排查登录流程的 token 过期…

2026/10/15 0:48:41 阅读更多 →
C#调用MATLAB绘图实战:COM自动化、句柄管理与嵌入式集成

C#调用MATLAB绘图实战:COM自动化、句柄管理与嵌入式集成

简介:本资源面向C#开发者与MATLAB混合编程实践者,解决在Windows平台下利用MATLAB强大图形引擎(尤其三维可视化)弥补C#原生绘图能力不足的核心问题。适用于科学计算、工程仿真、教学演示等需高质量数学图形的中高级开发场景。压缩包…

2026/10/15 0:48:41 阅读更多 →
在河北开发直播 APP,怎么挑选靠谱的软件公司?

在河北开发直播 APP,怎么挑选靠谱的软件公司?

河北不少创业者、企业都想搭建自己的直播 APP,带货直播、付费课程、娱乐打赏、私域直播等需求越来越多。但直播属于音视频高并发项目,技术门槛远高于普通商城和管理系统。很多本地软件公司只会做简单小程序,并不具备流媒体开发经验&#xff0…

2026/10/15 0:47:40 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/14 7:53:34 阅读更多 →