廖雪峰的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/9 2:42:45 阅读更多 →
Zepp Life自动刷步数终极指南:如何轻松实现健康数据管理

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

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

2026/10/9 10:22:33 阅读更多 →
终极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/4 13:09:51 阅读更多 →

最新新闻

Gemini Agent企业落地六步法:从目标驱动到生产可控

Gemini Agent企业落地六步法:从目标驱动到生产可控

1. 项目概述:当“给个目标就能干活”从宣传语变成真实工作流最近在几个技术社群里,几乎每天都能刷到“Gemini Agent”这个词。不是某篇论文里的概念,也不是实验室Demo的截图,而是某公司内部测试群里发出来的实操录屏——一个刚入职…

2026/10/14 23:52:22 阅读更多 →
工业视觉光源选型与2026年技术趋势解析

工业视觉光源选型与2026年技术趋势解析

1. 工业视觉光源选型的核心价值在自动化检测领域,视觉成像系统的性能瓶颈往往不是相机本身,而是前端的光源配置。我经历过多个项目,同样的2000万像素工业相机,在优化光源方案后,缺陷检出率从85%提升到99.8%。2026年的智…

2026/10/14 23:52:22 阅读更多 →
TCP端口检测与网络时延测试:无视防火墙的实战指南

TCP端口检测与网络时延测试:无视防火墙的实战指南

TCP端口检测及网络时延测试工具(无视防火墙)做运维和网络排查的兄弟应该都遇到过这种糟心事:业务方反馈系统卡顿、连不上服务器,你第一反应先ping一下,结果 ICMP 包直接被防火墙丢掉,显示“请求超时”。于是…

2026/10/14 23:52:22 阅读更多 →
电力设备并网测试标准与流程详解

电力设备并网测试标准与流程详解

1. 电力系统并网测试概述电力设备并网测试是确保新能源发电设备安全接入电网的关键环节。以光伏逆变器为例,在接入电网前必须通过严格的并网性能测试,主要包括电压/频率适应能力、防孤岛保护、谐波含量等关键指标验证。重要提示:不同国家和地…

2026/10/14 23:52:22 阅读更多 →
开源法律合规与社区运营实践指南

开源法律合规与社区运营实践指南

1. 开源法律与政策解读:从理论到实践开源软件已成为现代技术生态的基石,但许多开发者对背后的法律框架和政策环境仍存在认知盲区。《开源法律、政策与实践》这本书系统地梳理了开源领域的合规要点,其中几个关键概念值得重点关注:许…

2026/10/14 23:52:22 阅读更多 →
Sub-Agents、Skills与知识库:大模型应用架构重构实践

Sub-Agents、Skills与知识库:大模型应用架构重构实践

去年做一个复杂业务场景的大模型应用时,我一开始图省事,把所有能力塞进单个 Agent:检索、生成、校验、执行全在一个上下文里跑。结果很快发现这条路走不通——prompt 越来越长,模型在工具调用里频繁迷失,多轮对话后甚至…

2026/10/14 23:51:18 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战: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/13 22:01:27 阅读更多 →
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 阅读更多 →