当前位置: 首页 > news >正文

资讯网站做app小说网站开发php

资讯网站做app,小说网站开发php,泰安网络平台,自媒体今天齐姐简单讲下 Git 的实现原理#xff0c;知其所以然才能知其然#xff1b;并且梳理了日常最常用的 12 个命令#xff0c;分为三大类分享给你。本文的结构如下#xff1a;作者和开发原由Git 的数据模型常用命令资源推荐作者和开发原由Talk is cheap. Show me the code.这… 今天齐姐简单讲下 Git 的实现原理知其所以然才能知其然并且梳理了日常最常用的 12 个命令分为三大类分享给你。本文的结构如下作者和开发原由Git 的数据模型常用命令资源推荐作者和开发原由Talk is cheap. Show me the code.这句话就出自 Linux 和 Git 的作者Linus Torvalds。原本 Linux 内核的版本控制系统是用的 BitKeeper然而 2005 年BitMover 公司不再让 Linux 开发团队免费使用了。。Linus 一听不给用了老子自己写于是大佬十天之内完成了 Git 的第一个版本。所以 Git 是一个免费的、开源的版本控制系统。版本控制系统版本控制其实每个人都用过那些年修改过的简历小齐简历 2012 版小齐简历 2013 版小齐简历 2014 版小齐简历 2015 版小齐简历 2016 版小齐简历 2017 版小齐简历 2018 版小齐简历 2019 版...还有那些年打死都不再改的毕业论文毕业论文最终版毕业论文最最终版毕业论文最最最终版毕业论文最最最最终版毕业论文最终不改版毕业论文最终真不改版毕业论文最终真真不改版毕业论文最终打死不改版毕业论文最终打死不改版 2...没错这就是本地版本控制系统。很明显好处是简单但是只能一个人在这改无法和他人完成合作。那么以下两种主流的版本控制系统应运而生。1. 集中化版本控制系统Centralized Version Control Systems (CVCS)比如CVS, Subversion, Perforce, etc.这种版本控制系统有一个单一的集中管理的服务器保存所有文件的最新版本大家可以通过连接到这台服务器上来获取或者提交文件。这种模式相对本地版本控制系统是有所改进的但是缺点也很明显如果服务器宕机那么轻则耽误工作、重则数据丢失。于是分布式版本控制系统应运而生。2. 分布式版本控制系统Distributed Version Control Systems (DVCS)比如Git, Mercurial, Bazaar, etc.分布式的版本控制系统会把代码仓库完整地镜像下来这样任何一个服务器发生故障都可以用其他的仓库来修复。更进一步这种模式可以更方便的和不同公司的人进行同一项目的开发因为两个远程代码仓库可以交互这在之前的集中式系统中是无法做到的。那么什么叫“把代码仓库完整地镜像下来”呢CVCS 每个版本存放的是当前版本与前一个版本的差异因此也被称作基于差异的版本控制 (delta-based)Git 存储的是所有文件的一个快照 (snapshot)如果有的文件没有修改那就只保留一个 reference 指向之前存储的文件。不是很好理解那接着看吧Git 的数据模型1. 什么是快照 (snapshot) 呢首先我们来学两个 Git 中的术语blob, 就是单个的文件tree, 就是一个文件夹。快照则是被追踪的最顶层的树。比如我的“公众号”文件夹的这么一个结构那么一个快照就是追踪的“公众号”这颗树。2. 本地库的数据模型Git 记录了每个快照的 parent也就是当前这个文件夹的上一个版本。那么快照的迭代更新的过程就可以表示为一个有向无环图是不是很熟悉我们在「拓扑」那篇文章里讲过忘了的小伙伴快去公众号内回复「拓扑」获取拓扑的入门文章吧每个快照其实都对应了一次 commit我们用代码来表示一下class commit { array parents String author String message Tree snapshot}这就是 Git 的数据模型。blob, tree, snapshot 其实都一样它们在 Git 中都是对象都可以被引用或者被搜索会基于它们的 SHA-1 hash 进行寻址。git cat-file -t: 查看每个 SHA-1 的类型;git cat-file -p: 查看每个对象的内容和简单的数据结构。但是通过这个哈希值来搜索也太不方便了毕竟这是一串 40 位的十六进制字符就是第二部分 git log 里输出的那个编码。因此Git 还给了一个引用 reference。比如我们常见的 HEAD 就是一个特殊的引用。本地库就是由 对象 和 引用 构成的或者叫 Repositories.在硬盘上Git 只存储 对象 和 引用所有的 Git 命令都对应提交一个快照。那有哪些常用命令呢常用命令本章分三大部分介绍日常常用命令本地操作和远程库的交互团队协作 - 分支本地操作在学习常用命令之前你首先需要知道的 Git 的「三个分区」和对应的文件的「三种状态」工作区就是你本地实际写代码的地方无论你是用 vim 直接改也好还是在 IDE 里写都无所谓。对应的文件状态是modified已修改但还没保存到数据库中。暂存区就是临时存放的地方。对应的文件状态是stagedGit 已经对该文件做了标记下次提交知道要包含它。本地库存放本地历史版本信息。对应的文件状态是committed文件已经安全的保存在本地数据库中。1. $ git add工作区改完了代码就用 git add 提交到暂存区。这里如果文件改动的比较多但又不是每个都需要提交我会设置 git ignore file就表示这些文件不要提交比如在 build project 的时候会自动生成的那些文件等等。2. $ git commit -m comment从暂存区提交到本地库就需要用 commit。一般后面都会跟个 -m 加句 comment简单说下改动的内容或者原因我们公司大家默认也会把 Jira链接附上这样就知道这个改动对应哪个任务。那如果想再改再重新 git add 即可但是 commit 这句需要改成$ git commit --amend这样就还是一条 git log 信息。3. $ git loggit log 可以查看到提交过的信息从近到远显示每次 commit 的 comment 还有作者、日期等信息比如大概长这个样子commit 5abcd17dggs9s0a7a91nfsagd8ay76875afs7d6Author: XiaoqiDate: xxx xxx xxx改了 Test 文件commit 后面的这个编号是每次历史记录的一个索引。比如如果需要对版本进行前进或者后退的时候就需要用到它。这样打印的 log 太多更简洁的打印方式是$ git log --oneline就一行打印出来了。或者$ git reflog更常用一些。4. $ git reset那我们刚刚说过如果需要前进或退回到某个版本就用$ git reset --hard 这样就直接跳到了这个编号对应的那个版本。那么这个 hard 是什么意思呢这里有 3 个参数hard, soft, mixed我们一一来说一下。回到我们最重要的这张图上来我们刚刚说的前进或后退到某一版本是对本地库进行的操作。那有个问题本地库的代码跳到那个版本之后工作区和暂存区的代码就和本地库的不同步了呀那这些参数就是用来控制这些是否同步的。$ git reset --hard xxx三个区都同步都跳到这个 xxx 的版本上。$ git reset --soft xxx前面两个区不同步就只有本地库跳到这个版本。$ git reset --mixed xxx暂存区同步工作区不动。所以呢用的多的就是 hard.远程交互和远程库的交互主要是推、拉也就是写入和读取。5. $ git push小齐写完了代码要提交到公司的代码库里这个过程要用 git push.当然了这么用会被打的。。毕竟还要 cr 呢。5. $ git clone新来的实习生首先要 clone 整个项目到本地来然后才能增删改查。当然了实际工作中也没人这么用。。因为每家公司都会有自己包装的工具。不过如果是做 Github 上的开源项目就用得上了。6. $ git pull小齐提交了新的代码之后领导要审查呀所以用 git pull 把最新的代码拉取下来瞅瞅。实际上呢git pull fetch merge7. $ git fetchgit fetch 这个操作是将远程库的数据下载到本地库但是工作区中的文件没有更新。而要谈 get merge我们还需要先讲下分支。merge 是 git pull 默认的选项合并其实还有另外一种方法rebase中文叫做变基。8. $ git rebaserebase 的作用更多的是来整合分叉的历史可以将某个分支上的所有修改都移到另一分支上就像是变了基底。分支与合并首先我们来看几个关于分支的基本操作9. 查看分支$ git branch类似于ls能够列出当前所有分支。git branch -v 能够显示更多信息。10. 创建分支$ git branch 11. 切换分支$ git checkout 有了分支之后必然会有合并12. 合并分支$ git merge 而合并时就可能会有冲突什么时候会有冲突呢在同一个文件的同一个位置修改时。因为 Git 会努力的把你们改动不同的地方合并在一起但如果实在是在同一个地方改的那它也没办法了只能留给程序员去手动处理了。当然了每个命令延伸下去还有无限多个本文不可能涵盖全部所以在此重磅推荐齐姐精心挑选的三大学习资源大家可以自行享用学习资源git help其实我个人使用最多的是git help真心方便又好用啊比如 git help pull:先介绍了有哪些参数然后 description 详细解释了它的工作原理下面还有图解有木有太香不过这种方式更像是 cheatsheet当你已经知道了这个命令、只是忘了它的用法的时候去查。如果你想系统的学习那么下面 ? 的更适合你。Pro Git这本书是强烈推荐了Pro Git 这本书不仅讲了 Git 的基础用法、高级用法以及最后还深入讲解了 Git 的原理非常细致全面。书的电子版也能在网站上直接下载。英文版https://git-scm.com/book/en/v2中文版https://git-scm.com/book/zh/v2玩游戏Practice makes perfect!推荐一个宝藏资源玩游戏来练 Git项目https://github.com/pcottle/learnGitBranching网址https://learngitbranching.js.org/我熟悉很多工具都是通过小游戏来练习的比如 vim 的操作还是蛮推荐这种方式的。就不剧透啦大家自己去探索吧推荐阅读你居然还去服务器上捞日志搭个日志收集系统难道不香么真惨连各大编程语言都摆起地摊了Java摊位真大再见EclipseRabbitMQ实现延迟消息居然如此简单整个插件就完事了花了3天总结的RabbitMQ实用技巧有点东西面试官不会看 Explain执行计划简历敢写 SQL 优化IDEA同款数据库管理工具提示太全了用起来贼香Github标星34KStar这款开源项目助你秒建Git服务一个不容错过的Spring Cloud实战项目我的Github开源项目从0到20000 Star欢迎关注点个在看
http://www.sadfv.cn/news/337816/

相关文章:

  • 建筑公司网站大全网站的维护方案
  • 网站建设上传和下载wordpress php 5.3.x
  • 建设部网站 造价工程师为拟建设的网站申请一个域名
  • 图书类网站开发的背景凡客商城
  • 网站怎么做防盗上海seo方案
  • 网站绩效营销南山电商网站建设
  • 郑州英语网站建设怎么在wordpress中套用同行网页
  • 月付购物网站建站遂宁市建设银行网站
  • js模版网站网级移动营销app下载
  • 外贸网站模板下载wordpress添加字幕
  • 企业网站标签页是什么学平面设计的网站
  • 餐饮手机网站建设百度智能建站平台
  • 二手网站建设情况网站 推广 实例
  • 网站顶部广告素材wordpress不兼容插件
  • 外贸模板网站深圳农业咨询平台网站建设方案
  • 国外网站 国内访问速度西安的互联网营销公司
  • 开个做网站的公司 知乎wordpress后台设置教程
  • 内江住房和城乡建设厅网站广州大型公司名单
  • 百度网站排名wordpress 百度文库
  • 家具网站建设wordpress后台空白
  • 网站建设工厂免费logo在线制作头像
  • 行业网站 源码百度网盟推广费用投入
  • 酒店网站的开发及其设计方案凡科网站教程
  • 网站名称怎么起网页设计的就业和发展前景
  • 用asp.net做的网站有哪些织梦大气蓝色门户资讯网站模板
  • 班玛县公司网站建设信息流优化师是什么
  • 陕西网站开发联系电话做嗳嗳的网站
  • dw个人网站制作南昌网站建设冲浪者
  • 有专门做摄影画册的网站html网页制作房地产页面
  • 台州企业免费建站正规拉新推广平台有哪些