首页
导航
统计
留言
更多
壁纸
直播
关于
推荐
星的魔法
星的导航页
谷歌一下
镜像国内下载站
大模型国内下载站
docker镜像国内下载站
腾讯视频
Search
1
Ubuntu安装 kubeadm 部署k8s 1.30
332 阅读
2
kubeadm 部署k8s 1.30
217 阅读
3
rockylinux 9.3详细安装drbd
199 阅读
4
rockylinux 9.3详细安装drbd+keepalived
157 阅读
5
k8s 高可用部署+升级
154 阅读
默认分类
日记
linux
docker
k8s
ELK
Jenkins
Grafana
Harbor
Prometheus
Cepf
k8s安装
Gitlab
traefik
sonarqube
OpenTelemetry
MinIOn
Containerd进阶使用
ArgoCD
nexus
test
›
test2
test3
istio
golang
Git
Python
Web开发
HTML和CSS
JavaScript
对象模型
公司
zabbix
zookeeper
hadoop
登录
/
注册
Search
标签搜索
k8s
linux
docker
drbd+keepalivde
ansible
dcoker
webhook
星
累计撰写
154
篇文章
累计收到
1,007
条评论
首页
栏目
默认分类
日记
linux
docker
k8s
ELK
Jenkins
Grafana
Harbor
Prometheus
Cepf
k8s安装
Gitlab
traefik
sonarqube
OpenTelemetry
MinIOn
Containerd进阶使用
ArgoCD
nexus
test
test2
test3
istio
golang
Git
Python
Web开发
HTML和CSS
JavaScript
对象模型
公司
zabbix
zookeeper
hadoop
页面
导航
统计
留言
壁纸
直播
关于
推荐
星的魔法
星的导航页
谷歌一下
镜像国内下载站
大模型国内下载站
docker镜像国内下载站
腾讯视频
搜索到
152
篇与
的结果
2025-02-05
HTML常用标签
一、文档声明 你可使用此声明在 Internet Explorer6 及以后版本中切换为严格的标准兼容模式。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html><!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title> abc </title> </head> <body> <!-- 这里是页面主体内容 --> </body> </html>二、主体结构<htm1></htm1>此元素可告知浏览器其自身是一个 HTML 文档。 <head></head>用于定义文档的头部,它是所有头部元素的容器。,<head>中的元素可以引用脚本、指示浏览器在哪里找到样式表、提供元信息等等。 <body></doby>定义文档的主体三、HEAD头部标签<title></title>定义文档标题 <base />标签为页面上的所有链接规定默认地址或默认目标! 元素可提供有关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词。标签永远位于 head 元素内部。 <link></link>标签定义文档与外部资源的关系 <style></style>标签用于定义客户端脚本,比如JavaScript。script元素既可以包含脚本语句,也可以通过src属性指向外部脚本文件。四、meta元信息content 定义与 http-equiv 或 name 属性相关的元信息 name 把content属性关联到一个名称 author description keywords generator revised robots others http-equiv 把 content 属性关联到 HTTP 头部 content-type expires refresh set-cookie charset字符集编码 编码字符集 HTML5 支持 HTML5向下兼容 HTML 4支持 网页关键字: 网页描述信息 <!--下面的内容,只需要了解。 自己看看--> 所有搜索引擎,抓取这个页面、爬行链接、禁止快照: all:文件将被检索,且页面上的链接可以被查询; none:文件将不被检索,且页面上的链接不可以被查询; index:文件将被检索; follow:页面上的链接可以被查询; noindex:文件将不被检索,但页面上的链接可以被查询; nofollow:文件将被检索,但页面上的链接不可以被查询; noarchive:文件将被检索,但禁止保存快照; 网页作者: 网页网页生成工具 定义页面最新版本 网页版权信息: 网页刷新信息: 10秒后跳转到百度页面五、格式排版标签<br/>换行标签,完成文字的紧凑显示。可以使用连续多个<br/>标签来换行 <hr/>水平分割线标签,用于段落与段落之间的分割 <p></p>段落标签,里面可以加入文字,列表,表格等,可以<p></p>或<p />使用 <pre></pre>按原文显示标签,可以把原文件中的空格,回车,换行,tab键表现出来 <hn></hn>标题字标签,n为1-6,定义六级标题,而且会自动换行插入一个空行 <div></div>没有任何语义的标签六、文本标签<em></em>表示强调,通常为斜体字 <strong></strong>表示强调(语气更强),通常为粗体字<de1></de1>标签定义文档中已删除的文本 <insx</ins>标签定义已经被插入文档中的文本 <sub></sub>文字下标字体标签 <sup></sup>文字上标字体标签 <markx/mark> H5新增 标签定义带有记号的文本 请在需要突出显示文本时使用,如搜索 引擎搜索页面 <ruby></ruby> H5新增 标签定义 ruby 注释(中文注音或字符) 在东亚使用,显示的是东亚字符的发音。 <rt></rt>H5新增 标签定义字符(中文注音或字符)的解释或发音<!--一下文本标签 作为了解--> <cite> 用于引证、举例、(标签定义作品(比如书籍、歌曲、电影、电视节目、绘画、雕塑等等)的标题)通常为斜体字 <dfn> 定义一个定义项目 <code> 定义计算机代码文本 <samp> 定义样式文本 标签并不经常使用。只有在要从正常的上下文中将某些短字符序列提取出来,对它们加以强调的极少情况下,才使用这个标签。 <kbd> 定义键盘文本。它表示文本是从键盘上键入的。它经常用在与计算机相关的文档或手册中。 <abbr> 定义缩写 配合title属性 (IE6以上) <bdo> 来覆盖默认的文本方向 dir属性 值: lrt rtl <var> 定义变量。您可以将此标签与 <pre> 及 <code> 标签配合使用。 <small> 标签定义小型文本(和旁注) <b> 粗体字标签 根据 HTML 5 的规范,<b> 标签应该做为最后的选择,只有在没有其他标记比较合适时才使用它。 <i> 斜体字标签 标签被用来表示科技术语、其他语种的成语俗语、想法、宇宙飞船的名字等等。 <u> 下划线字体标签 标签定义与常规文本风格不同的文本,像拼写错误的单词或者汉语中的专有名词。 请尽量避免使用 <u> 为文本加下划线,用户会把它混淆为一个超链接。 <q> 签定义一个短的引用。浏览器经常会在这种引用的周围插入引号。(小段文字) <blockquote> 标签定义摘自另一个源的块引用。浏览器通常会对 <blockquote> 元素进行缩进。(大段文字) (块状元素) <address> 定义地址 通常为斜体 (注意非通讯地址) 块状元素 <font> H5已删除 字体标签,可以通过标签的属性指定文字的大小、颜色及字体等信息 <tt> H5已删除 打字机文字 <big> H5已删除 大型字体标签 <strike> H5已删除 添加删除线 <acronym> H5已删除 首字母缩写 请使用<abbr>代替 <bdi> H5新增 标签允许您设置一段文本,使其脱离其父元素的文本方向设置。(经测试,各大浏览器都不起作用) <mark> H5新增 标签定义带有记号的文本 请在需要突出显示文本时使用,如搜索引擎搜索页面 <meter> H5新增 定义预定义范围的度量 <progress> H5新增 标签标示任务的进度(进程) <time> H5新增 定义时间和日期 <wbr> H5新增 规定在文本中的何处适合添加换行符。Word Break Opportunity
2025年02月05日
11 阅读
0 评论
0 点赞
2025-02-05
HTML5基础
一、HTML1.1 什么是HTMLHTML是用来制作网页的标记语言 HTML是Hypertext Markup Language的英文缩写,即超文本标记语言 HTML语言是一种标记语言,不需要编译,直接由浏览器执行 HTML文件是一个文本文件,包含了一些HTML元素,标签等 HTML文件必须使用.html或.htm为文件名后缀 HTML是大小写不敏感的,HTML与html是一样的 HTML是由W3C的维护的HTML 是通向 WEB 技术世界的钥匙。1.2发展历史HTML是从2.0版本开始的,实际上没有1.0的官方规范,在1993年6月作为互联网工程工作小组(IETF)工作草案发布(并非标准) HTML 2.0--1995年11月作为RFC 1866发布,在RFC 2854于2000年6月发布之后被宣布已经过时 HTML 3.2--1997年1月14日,W3C推荐标准 HTML 4.0--1997年12月18日,W3C推荐标准 HTML 4.01(微小改进)--1999年12月24日,W3C推荐标准 HTML5-2014年10月28日,W3C推荐标准1.3HTML5的由来HTML5草案的前身名为 Web Applications 1.0,于2004年被WHATWG提出,于2007年被W3C接纳,并成立了新的 HTML 工作团队。 HTML5 的第一份正式草案已于2008年1月22日公布。HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。 2012年12月17日,万维网联盟(W3C)正式宣布凝结了大量网络工作者心血的HTML5规范已经正式定稿。根据W3C的发言稿称:“HTML5是开放的Web网络平台的奠基石。 2013年5月6日, HTML 5.1正式草案公布。该规范定义了第五次重大版本,第一次要修订万维网的核心语言:超文本标记语言(HTML)。在这个版本中,新功能不断推出,以帮助Web应用程序的作者,努力提高新元素互操作性。 2014年10月29日,万维网联盟宣布,经过接近8年的艰苦努力,该标准规范终于制定完成。1.4HTML5的优点1、提高可用性和改进用户的友好体验 2、有几个新的标签,这将有助于开发人员定义重要的内容 3、可以给站点带来更多的多媒体元素(视频和音频) 4、可以很好的替代FLASH和Silverlight 5、当涉及到网站的抓取和索引的时候,对于SEO很友好 6、将被大量应用于移动应用程序和游戏 7、可移植性好。1.5HTML5的兼容性Internet Explorer 9 以及 以上版本 chrome、Safari、opera、Firefox和各种以wekkit为内核的国产浏览器二、HTML基本语法2.1HTML标签标签是HTML中最基本单位,也是最重要组成部分 通常要用两个角括号括起来:<和> 标签都是闭合的(两种形式:成对与不成对) 双标签(成对):<标签名>内容</标签名>如:<table></table>即分起始和结束 单标签(不成对):<标签名 />;如:<br/>、<hr/> 标签是大小写无关的,body>;跟<B0DY>表示意思是一样的,标准推荐使用小写,这样符合XHTML标准 对于HTML标签来讲,最重要的是语义2.2HTML标签属性HTML属性一般都出现在HTML的开始标签中,是HTML标签的一部分。 标签可以有属性,它包含了额外的信息.属性的值一定要在双引号中。 标签可以拥有多个属性。 属性由属性名和值成对出现。 语法格式如下: <标签名 属性名1="属性值" 属性名2="属性值" ... 属性名N="属性值">2.3HTML代码格式任何回车或空格在源代码中都是不起作用,所以在编写HTML代码时,都可以使用回车或者空格进行代码排版这样可以使代码清晰,也便于团队合作。必须保持严格的缩进规则,以Tab键为准。2.4HTML注释<!-- 注释内容 --> <!-- 这里全是注释 都是注释 -->2.5HTML实体(特殊字符)
2025年02月05日
11 阅读
0 评论
0 点赞
2025-02-01
前端开发工具选择
一、安装Sbulimehttps://www.sublimetext.com/二、安装插件https://packagecontrol.io/ 打开Sublime Text 然后首选项里面有浏览插件目录 创建文件夹Package Control把下载好的文件放进去 重启Sublime Text三、安装插件1、在Sublime Text中使用快捷键 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac) 打开命令面板。 2、在命令面板中开始输入“Package Control: Install Package”,然后从下拉列表中选择该项并按回车键。 Emmet:在随后出现的搜索框中输入“Emmet”,找到后点击即可自动安装。 SideBarEnhancements:重复上述过程,这次搜索“SideBarEnhancements”并安装。 Material Theme:同样地,搜索“Material Theme”进行安装。(UI: Select Theme”。然后从列表中选择你喜欢的Material Theme样式) #对于某些插件,你可能需要进一步配置才能完全满足你的需求。这通常可以通过访问Preferences -> Package Settings下的相关菜单来完成。 #退出任何功能界面:esc
2025年02月01日
8 阅读
0 评论
0 点赞
2025-01-28
GIt的分支管理
一、分支介绍分支是Git的杀手级特征,而且Git鼓励在工作流程中频繁使用分支与合并,哪怕一天之内进行许多次都没有关系。因为Git分支非常轻量级,不像其他的版本控制,创建分支意味着要把项目完整的拷贝一份,而Git创建分支是在瞬间完成的,而与你工程的复杂程度无关。二、创建分支与合并分支分支可以被理解为一条时间线,这一条时间线上串着一个个节点,每个节点都是一次提交记录/版本。 git默认只有一条时间线or分支,该时间线or分支称之为主分支,即master分支,文件.git/refs/heads/master 内存放着指向master分支最新版本的指针,如果下所示红色块即master指针,指向master分支 # 注意箭头方向,因为每一次提交都有一个指向上一次提交的指针,所以箭头方向向左,更为合理每次提交,master分支都会向前移动一步,master指针指向最新提交的一个版本,这样,随着你不断提交master分支的线也越来越长,如下如果我们有多个分支,那么GIT如何实现在多个分支之间来回切换的呢,·git文件夹下的HEAD文件负责存放当前所在的分支ref:refs/heads/分支名称》,切换分支就是修改HEAD文件中的内容为对应分支,并将工作区的文件恢复至对应分支的内容,所以严格来说HEAD不是指向提交,而是指向当前所在的分支,比如master,master才是指向提交的,一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向就能确定当前分支,以及当前分支的提交点:当我们创建并切换到一个新的分支,例如dev时 1、Git会新建一个指针叫dev,指向master相同的提交 2、然后再把HEAD指向dev,就表示当前分支在dev上 Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化如果HEAD指向dev,那么代表当前分支在dev上,这意味着接下来对工作的修改和提交都是针对dev分支了,如果master是小河的主干,那么dev就是这条河的支流,主干的水被引入了支流. 比如提交一次后,dev指针往后移动一步,而master指针不变当在master分支合并dev分支时,因为他们在一条线上,这种单线的历史分支不存在任何需要解决的分歧,所以只需要master指针指向dev分支的最新一次提交即可,所以非常快。所以你看,git不仅创建分支快,合并分支也很快!就改改指针,工作区内容也不变!合并完分支后,甚至可以删除dev分支。删除dev分支就是把dev指针给删掉,删掉后,我们就剩下了一条master分支,甚至都看不出来添加过dev分支,毁尸灭迹了实操:1、在当前分支下创建子分支并切换# 1.1 创建+切换=>两条命令搞定 git branch dev # 在当前分支下创建子分支 git checkout dev # 由当前分支切换到子分支 #1.2 创建+切换=>一条命令搞定 git checkout -b dev # 等同于上述两条命令,代表创建并切换到子分支2、直接切换到已有分支git checkout dev3、查看当前分支devmaster4、切换到dev分支下修改并提交记录/版本git checkout dev echo "111" > c.txt git add . git commit -m "v4" git checkout master git merge dev # git merge命令用于合并指定分支到当前分支。如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移因为这种单线的历史分支不存在任何需要解决的分歧,所以这种合并过程可以称为快进(Fastforward),上述合并git merge dev用的就是Fast-forward快进模式,毫无疑问不是每次合并都能采用Fast-forward。 合并完成后,就可以放心地删除dev分支了 $ git branch -d dev Deleted branch dev (was f1d9621). master因为创建、合并和删除分支非常快,所以Git鼓励你使用分支完成某个任务,合并后再删掉分支,这和直接在master分支上工作效果是一样的,但过程更安全。5、switch因为get checkout -- 文件通常是用来撤销修改的,又用它来创建并切换分支,有点容易让人混淆,所以 最新版本的Git提供了新的git switch命令来创建or切换分支,推荐使用 $ git switch -c dev # 创建并切换到新的dev分支,等同于git checkout -b dev $ git switch master # 直接切换到已有的master分支三、分支管理策略
2025年01月28日
8 阅读
0 评论
0 点赞
2025-01-28
Git基本使用
一、创建仓库并出事还//查看某个命令文档 git help <command> git <command> -h git <command> --help # 1、创建仓库 mkdir /Users/linhaifeng/pro # 2、初始化,表示即将对当前文件夹进行版本控制 cd /Users/linhaifeng/pro git init #注意 1、创建版本库,版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”。 2、在仓库目录下执行git init后会生成一个隐藏目录.git,该隐藏目录就是Git用来跟踪管理版本库的,没事千万不要手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。 3、如果你使用Windows系统,为了避免遇到各种莫名其妙的问题,请确保目录名(包括父目录)不包含中文。 4、后期的git命令都需要在仓库目录下执行,在仓库目录外执行git命令是没有意义的二、工作区与版本库2.1、Git只能管理文本文件不能管理二进制文件所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。 不幸的是,Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动的,前面我们举的例子只是为了演示,如果要真正使用版本控制系统,就要以纯文本方式编写文件。 因为文本是有编码的,比如中文有常用的GBK编码,日文有Shift_JIS编码,如果没有历史遗留问题,强烈建议使用标准的UTF-8编码,所有语言使用同一种编码,既没有冲突,又被所有平台所支持。 使用Windows的童鞋要特别注意: 千万不要使用Windows自带的**记事本**编辑任何文本文件。原因是Microsoft开发记事本的团队使用了一个非常弱智的行为来保存UTF-8编码的文件,他们自作聪明地在每个文件开头添加了0xefbbbf(十六进制)的字符,你会遇到很多不可思议的问题,比如,网页第一行可能会显示一个“?”,明明正确的程序一编译就报语法错误,等等,都是由记事本的弱智行为带来的。建议你下载Notepad++代替记事本,不但功能强大,而且免费!记得把Notepad++的默认编码设置为UTF-8 without BOM即可2.2、Git每一次提交版本保存的都是对文件内容的完整快照,快照是什么呢?1、针对已变化的文件,那么git保存的是把该文件的完整内容拷贝一份保存下来,而不是差异变化或者文件补丁。因此你可以完全恢复到以前的任一个提交而不会发生任何区别。 2、未变化的文件只保存上一个版本的指针如果我的项目大小是10M,那Git占用的空间是不是随着提交次数的增加线性增加呢?我提交(commit)了10次,占用空间是不是100M呢?很显然不是,Git是很智能的,如果文件没有变化,它只会保存一个指向上一个版本的文件的`指针`,即,对于一个特定版本的文件,Git只会保存一个副本,但可以有多个指向该文件的`指针`。Git最适合保存文本文件,事实上Git就是被设计出来就是为了保存文本文件的,像各种语言的源代码,因为Git可以对文本文件进行很好的压缩和差异分析(大家都见识过了,Git的差异分析可以精确到你添加或者删除了某个字母)。而二进制文件像视频,图片等,Git也能管理,但不能取得较好的效果(压缩比率低,不能差异分析)。实验证明,一个 500k 的文本文件经Git压缩后仅 50k 左右,稍微改变内容后两次提交,会有两个 50k 左右的文件,没错的,保存的是完整快照。而对于二进制文件,像视频,图片,压缩率非常小, Git 占用空间几乎随着提交次数线性增长。2.3、Git把管理的文本呢文件分为两个区域、四种状态。2.3.1、工作区:仓库目录# 当前开发程序所在目录称为工作区,即:工作开发都是在该目录。在我们提交一个版本到版本库后,git会自动检测自该版本之后我们对仓库目录下文件的改动(增、删、改),并标记为修改过的内容,我们可以使用 【git status】命令查看,如下所示 $ cd /Users/linhaifeng/pro # 必须确保已经在仓库目录下执行git命令 $ git status # 查看当前git状态,未检测到任何变化 $ echo "hello egon" >> readme.txt # 在仓库目录下或仓库的子目录下新增文件 $ git status # git会自动检测到工作区的变化:新增了文件readme.txt,显示内容略2.3.2、版本库:即仓库目录下的.git目录,.git不属于工作区# 如果我们想将git检测到的修改过的内容提交为一个新的版本,需要 # 1、先将git检测到的修改过的内容添加到暂存区,用到【git add】命令 git add 文件1 # 可以添加单个文件 git add 文件1 文件2 # 也可以添加多个文件 git add . # 也可以直接添加整个当前目录 #当然,也可以add多次 # 2、然后再执行【git commit -m '又一个版本'】提交到版本库的分支即可 git commit -m "第一次提交" # 注意:执行git commit 命令时,可能会提示进行用户和邮箱的配置,该配置用于记录当前版本由那个用户提交 git config --local user.name 'egon' git config --local user.email 'egon@example.com' 配置级别 –local(默认,高级优先):只影响本地仓库 –global(中优先级):只影响所有当前用户的git仓库 –system(低优先级):影响到全系统的git仓库 # 3、之后可以使用【git log】命令查看版本记录。 git log git log --pretty=oneline # 如果嫌输出信息太多,可以加上--pretty=oneline参数 git log --color --graph 查看reflog,用于找到回滚后的日志 git reflog三、命令小结目前已使用命令如下,使用下述命令已经可以代替本地多个文件保存版本的方式# 一:创建并初始化仓库 mkdir /Users/linhaifeng/pro cd /Users/linhaifeng/pro git init # 二:设置用户与邮箱 git config --local user.name 'Egon' git config --local user.email 'egon@example.com' # 三:查看Git当前状态,如:哪些文件被修改过、哪些文件还在暂存区里尚未被提交到版本库等。 git status # 四:将检测到修改的文件添加到暂存区 git add 文件名 # 五:将暂存区的文件提交到版本库的分支。 git commit -m '提交信息' # 六:查看提交记录,即:历史版本记录 git log git log --pretty=oneline git reflog四、版本回退与前进我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,目前为止,我们执行的git commit就是往master分支上提交更改。 Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD,HEAD指针指向的就是当前在用的版本Git的版本回退速度非常快,因为当你回退版本的时候,Git仅仅是把HEAD指向一个制定的版本,然后顺便把工作区的文件更新了。从当前版本,回到过去的版本,如下图所示是向左回退当前版本为版本3,回退到版本1,命令如下:# 1、查看版本信息 $ git log --pretty=oneline 87e199e0a766ecb10028ab93fe57fb4b326445fa (HEAD -> master) 版本3 353b5afb8784f0e19c8dab83be1cb97a93b13bd4 版本2 b740905aaf2753572a714ccdf3bd58a1d437148a 版本1 # 2、回滚到上一个版本 # 2.1 方式1:HEAD指向当前版本,HEAD^代表指向当前版本的上一个,HEAD^^代表指向当前版本的上上个,依次类推,HEAD~n代表指向当前版本的上上上...n个 $ git reset --hard HEAD^ # 如果执行的是git resert --hard HEAD~2 往后数两个版本,就会回到版本1 HEAD is now at 353b5af 版本2 # 2.1 方式2:回到某个指定的版本用git log查询出的commit id号 $ git reset --hard 353b5afb8784f0e19c8dab83be1cb97a93b13bd4从当前版本,回到未来的版本呢,如下图所示是向右前进当前版本为版本1,前进到版本3,命令如下 # 1、用git log查看会发现最新的版本“版本3”不见了!!! $ git log --pretty=oneline 353b5afb8784f0e19c8dab83be1cb97a93b13bd4 (HEAD -> master) 版本2 b740905aaf2753572a714ccdf3bd58a1d437148a 版本1 # 2、我们当然可以在命令终端中往上翻阅查找当初版本3还在时,我们用git log查出的commit id进行操作,但是这种做法毕竟不靠谱。我们可以用更靠谱的命令 $ git reflog ...... 87e199e HEAD@{6}: commit: 版本3 353b5af HEAD@{7}: commit: 版本2 b740905 (HEAD -> master) HEAD@{8}: commit (initial): 版本1 # 3、前进到版本3 $ git reset --hard 87e199e HEAD is now at 87e199e 版本3总结:1、HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset--hard commit id. 2、穿梭前,用git 1og可以查看提交历史,以便确定要回退到哪个版本。 3、要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本3、五、撤销修改场景1:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考上一小节版本回退,不过前提是没有推送到远程库。 场景2: 前提:如果当前文件的内容已经被提交到版本库 操作:之后又修改了该文件,并且git add添加到了暂存区,后续又修改了文件 撤销: 先执行git reset HEAD`将文件从暂存区拿回工作区 再执行git checkout -`将工作区的修改还原到原来的状态(即上一次git commit的状态) 场景3: 前提:如果当前文件的内容从未被提交到版本库 操作:修改了该文件,并且git add添加到了暂存区,后续又修改了文件 撤销: 此时无法执行git reset HEAD 应该执行git checkout - 将工作区的修改还原到git add时文件的内容 总之,git checkout - 就是让这个文件回到最近一次git commit或git add 时的状态。注意:git checkout -- fi1e命令中的--很重要,没有--,就变成了"切换到另一个分支"的命令,我们在后面的分支管理中会再次遇到git checkout命令。六、管理修改Git比其他版本控制系统优秀的一个重要原因就是:Git跟踪并管理的是修改,而非文件。每次修改都需要先add到暂存区,才能提交到版本库,如果每次修改后,不用add添加到暂存区,就不会被commit提交到版本库 $ echo "hello" > a.txt # 第一次修改 $ git add a.txt $ echo "world" >> a.txt # 第二次修改,本次修改并没有add到暂存区,暂存区的a.txt内容为“hello” $ git commit -m "版本1" # 把暂存区的内容提交到版本库 $ git status # 查看到第二次修改仍然存在于工作区,并未提交 $ git diff HEAD -- a.txt # 可以用命令查看版本库最新版本与工作区的区别 diff --git a/a.txt b/a.txt index ce01362..94954ab 100644 --- a/a.txt +++ b/a.txt @@ -1 +1,2 @@ hello +world上述情况,我们可以在版本1的基础上继续操作:将第二次修改也add到暂存区,然后再commit一个“版本2到版本库,也可以在当初的时候先别着急将第一次的修改commit提交成"版本1",先将第二次修改的内容也add到暂存区,然后与第一次的修改合并到一起提交成一个版本七、删除文件在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "v1"一般情况下,你通常直接在文件管理器中把没用的文件删了,或者用r命令删了: $ rm test.txt这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,git status命令会立刻告诉你哪些文件被删除了: $ git status On branch master Changes not staged for commit: (use "git add/rm <file>..." to update what will be committed) (use "git checkout -- <file>..." to discard changes in working directory) deleted: test.txt no changes added to commit (use "git add" and/or "git commit -a")现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令gitrm删掉,并且gitcommit: $ git rm -f test.txt rm 'test.txt' $ git commit -m "remove test.txt" [master d46f35e] remove test.txt 1 file changed, 1 deletion(-) delete mode 100644 test.txt文件就从版本库中被删除了补充: 可以配置.gitignore配置忽略文件,这些文件不被git追踪 git rm --cached :仅从暂存区删除 git rm :从暂存区与工作目录同时删除 git rm $(git ls-files --deleted):删除所有被跟踪,但是在工作目录被删除的文件小提示:先手动删除文件,然后使用git rm 和git add效果是一样的,都会从版本库中删除掉文件。 另一种情况是删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本: $ git checkout -- test.txtgit checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以"一键还原"。 注意:从来没有被添加到版本库就被删除的文件,是无法恢复的! 命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。
2025年01月28日
13 阅读
0 评论
0 点赞
1
...
21
22
23
...
31