今天中午到下午1:00开始学习git。git我学了一大半。好在任务不多,但是上午的时间还是值得的,因为我去搭建了一个cnblogs,背景主题就是你现在看到的那套。我以前不明白这个,但我现在很熟悉了。添加这些参数非常强大。自己编辑页面的功能是我最喜欢的。这套我比较满意的主题是自适应的。之前用的默认手机根本看不到。没想到现在这个也可以自适应了,对于手机用户来说真是个福音。然后第二件事就是今天开始用typora,感觉还行。不知不觉,一大版的笔记井井有条。后面我会用Markdown编辑器上传,因为顺便可以把我的笔记一起上传。然后配合我做的效果演示。在typora上搞了半天自动上传图片到博客园,Python脚本终于搞定了,方便以后我的笔记自动上传。一、关于版本控制版本控制软件就是负责管理文件版本的软件。记录文件的版本变化的优点是采用命令的形式,操作方便等。分布式版本控制系统的客户端是服务器的完整备份,而不仅仅是保持最新版本。相反,将下载服务器的所有版本。这样,如果服务器数据丢失,可以从任何客户端恢复。2、git的基本概念是什么?越是协作的开发者,越能体现git的高性能和高可用特性。svn是基于差异比较的:即在更新版本时,不记录最新版本,而是记录最新版本的差异和记录快照,git中记录快照有两种。一种是如果版本发生变化,将在原始文件上制作更新版本的备份。如果没有更新,将直接链接到源文件,如下图所示。虚线表示没有更新,implementation表示更新,其实这个snapshot和虚拟机中的snapshot类似。每次创建快照,是不是因为做了一些操作想保存在这里?每个快照都是一个完整的系统,因此会占用大量的磁盘清洗空间。几乎所有的操作都是本地执行只需要访问本地的文件和资源,因为前面提到git是一个分布式控制系统,客户端和服务端的资源是一样的。你有三个版本,我也有三个版本,这个特性也决定了我们的版本管理在断线后还是可以的。如果断线后从v3升级到v4,就直接升级你自己的,服务器就检测不到断线了。当我们联网时,记录会同步到云端的三个git。区域(工作区,暂存区,git仓库)当你在写代码的时候,代码所在的目录就是一个工作区;当你写完一个函数,你可以把它暂时放在暂存区;放入git仓库git三态git基本工作流程写代码,然后把写好的函数放到暂存区暂存。这时候修改和暂存状态已经过去了,继续回去完善逻辑。全部功能实现后,以快照的形式提交到git仓库。3、安装配置git,安装完成后检查。勾选右键菜单进行配置,设置用户名和邮箱:注意,使用全局选项后,该命令只需要运行一次即可永久生效。您不需要此命令进行全局配置。上面命令执行后,实际会显示在c盘/users/用户名文件夹/下。查看配置信息也可以使用命令快速查看和获取帮助信息(无需联网)githelp我们的命令eg:githelpconfig或gitconfig-h4。获取git仓库的两种方式。将本地目录转换为git仓库在当前目录右键gitBash,输入gitinit。你可以初始化一个仓库。当前目录下会有一个.git的隐藏目录。是当前项目的git仓库,里面有一些初始化需要的文件。从其他服务器clone一个git仓库,在四种状态下工作。分为两类:一类是不被git管理的:那么会出现untracked状态(上次git提交之前没有这个文件,也就是新建的),一类是被git管理的:unmodified(工作的)区内容与git仓库内容一致)、修改(工作区内容与git仓库内容不同)、暂存(工作区修改的文件已放入暂存区,准备进入提交状态)注:git操作的最终结果是:保持工作区中的文件处于“未修改”状态查看文件状态gitstatus(输出结果称为状态报告)关键字:Untrackedfiles表示未跟踪状态==以简化方式显示文件状态==:gitstatus-s==??表示untracked==trackingnewfilesgitaddthisfilecommitted:添加管理这个文件并放入暂存区,committed表示暂存区==简化版是A====开头==提交updategitcommit或者gitcommit-m可以进一步说明提交成功。这意味着它没有被修改。无需提交任何文件即可修改已提交的文件。当我们拿到已经提交到仓库的index.html,拿到工作区去修改。这时候再去status会显示modified。缩写版本为M。这是修改后的状态。临时存储修改后的文件。再次运行git添加。该命令可以将未跟踪和修改过的文件放入暂存区。注意:未追踪并放置在暂存区以A开头,修改后放置在暂存区仍是修改,或M但放置前为红色,现在为绿色撤消文件的修改并恢复将工作区中修改的内容复制到仓库中。内容,所有修改都会丢失,无法恢复,高风险==gitcheckout--index.html==一次性添加多个文件到暂存区==gitadd.==这个命令以后会用的比较多以后开发取消临时文件从暂存区搬出部分文件==gitresetHEAD==所有搬出的文件名==gitresetHEAD.==同时从git仓库和工作空间中删除文件==gitrm-findex.js==*只从git仓库中移除,保留==gitrm--cachedindex.css==ignorefilesintheworkspace一般有些文件不会需要纳入git的管理,又不想脱身。在untracked列表中创建一个.gitignore配置文件(这个文件可以上传)==规范如下:==\#开头是注释/结尾是目录/开头防止递归!开头表示否定globpattern,指的是简化正则:注意:/开头表示递归,表示只需要省略当前目录下的todo文件夹,而不需要忽略other中的todo文件夹directories,这是递归;倒数第二条:只忽略本目录下的txt文件,但不会忽略本目录下子目录下的txt文件查看提交历史==gitlog==gitlog-2显示最近的两个gitlog-2--pretty=oneline在一行上显示最后两个gitlog-2--pretty=format:"%h|%an|%ar|%s"在一行上显示最后两个,自定义输出格式%h表示唯一标识符ofthecommit%an表示作者姓名%ar作者修订日期%s提交描述回退到指定版本==注意==:commitID是刚才说的唯一标识,没有<>符号;回到上一版本后,可以查看当时的提交历史。如果想查看他之后的所有提交,需要输入第三条命令
