
Git
文章平均质量分 51
coolboygym
这个作者很懒,什么都没留下…
展开
-
git commit message 编写规范
git是软件开发过程中必不可少的代码管理工具,在每次提交新代码时,需要写一些信息表示本次提交所改动的内容。为了方便日后的管理与迭代,commit message最好能有一些固定的格式,让人一眼就能知道每一次提交所做的修改。本文分享一下开源社区常用的代码提交规范,仅供参考。完整的commit message格式如下:<type>(<scope>): &lt原创 2018-05-13 10:12:56 · 1752 阅读 · 0 评论 -
深入理解Git原理 | detached HEAD 的含义与用法
关于detached HEAD,在你使用Git的过程中,很可能永远不会遇到这种看似“神秘”的状态。但是,如果有那么一天,你应该很想知道究竟什么是“detached HEAD”,以及你如何能进入那个状态。理解checkout是如何工作的使用“git checkout”命令,你可以切换到项目的指定版本,然后Git将所有该版本中的文件放在你当前的工作文件夹中。通常来说,你使用分支名称与“git c...翻译 2019-02-20 20:22:19 · 5743 阅读 · 0 评论 -
深入理解Git原理 | 文件的三种状态
Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。由此引入 Git 项目的三个工作区域的概念:Git 仓库、工作目录以及暂存区域。Git 仓库目录是...转载 2019-02-20 16:42:57 · 614 阅读 · 0 评论 -
深入理解Git原理 | 移除子模块
子模块是一个有趣的概念,它可以让我们在一个项目中包含另一个项目的代码,同时保持两者的相对独立性。如果几个模块的更新都很频繁,那么使用子模块可以为开发者提供很大的灵活性。但是,如果子模块的代码很少更新甚至几乎不更新,比如代码可能已经很稳定了,那么我们需要考虑将子模块的代码打包后通过安装包的形式来引用,而不再使用子模块。这种时候我们需要从项目中移除子模块。移除子模块和移除一个普通的文件相比没有太大差...原创 2019-03-01 11:08:36 · 1027 阅读 · 0 评论 -
深入理解Git原理 | reset 和 checkout
理解 reset 和 checkout 的最简方法,就是以 Git 的思维框架(将其作为内容管理器)来管理三棵不同的树。 “树” 在我们这里的实际意思是 “文件的集合”,而不是指特定的数据结构。 (在某些情况下索引看起来并不像一棵树,不过我们现在的目的是用简单的方式思考它。)Git 作为一个系统,是以它的一般操作来管理并操纵这三棵树的:树用途HEAD上一次提交的快照,下一...转载 2019-02-22 16:30:57 · 895 阅读 · 0 评论 -
深入理解Git原理 | 祖先引用
祖先引用是一种指明一个提交的方式。 如果你在引用的尾部加上一个 ^, Git 会将其解析为该引用的上一个提交。 假设你的提交历史是:$ git log --pretty=format:'%h %s' --graph* 734713b fixed refs handling, added gc auto, updated tests* d921970 Merge commit 'phedd...转载 2019-02-21 16:20:28 · 381 阅读 · 0 评论 -
深入理解Git原理 | 分布式工作流程
原文链接同传统的集中式版本控制系统(CVCS)不同,Git 的分布式特性使得开发者间的协作变得更加灵活多样。 在集中式系统中,每个开发者就像是连接在集线器上的节点,彼此的工作方式大体相像。 而在 Git 中,每个开发者同时扮演着节点和集线器的角色——也就是说,每个开发者既可以将自己的代码贡献到其他的仓库中,同时也能维护自己的公开仓库,让其他人可以在其基础上工作并贡献代码。 由此,Git 的分布式...转载 2019-01-31 23:10:56 · 540 阅读 · 0 评论 -
深入理解Git原理 | 附注标签
Git 使用两种主要类型的标签:轻量标签与附注标签。通常我们使用的是轻量标签,一个轻量标签很像一个不会改变的分支,它只是一个特定提交的引用,本质上是将提交校验和存储到一个文件中,没有保存任何其他信息。 创建轻量标签,只需要提供标签名字:$ git tag v1.4$ git tagv0.1v1.0v1.4然而,附注标签是存储在 Git 数据库中的一个完整对象。 它们是可以被校验的;...原创 2019-01-15 09:29:10 · 891 阅读 · 2 评论 -
深入理解Git原理 | 移除文件
如果是在文件还未纳入 Git 的管理时就不想跟踪该文件,可以在 .gitignore 文件中加入该文件的模式。如果文件已经纳入 Git 的管理,此时要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。 可以用 git rm 命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。比如:$ rm PROJECT...原创 2019-01-14 21:29:24 · 329 阅读 · 0 评论 -
深入理解Git原理 | 文件的生命周期
在 Git 工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态...转载 2019-01-14 12:55:30 · 394 阅读 · 0 评论 -
深入理解Git原理 | glob模式
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式。.gitignore文件可以使用标准的 glob 模式匹配。所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个...原创 2019-01-13 22:26:12 · 592 阅读 · 0 评论 -
Git 基本用法
本文翻译自Git cheat sheet,通过一页纸的内容搞定Git常用命令。创建复制一个已创建的仓库:通过 SSH$ git clone ssh://user@domain.com/repo.git通过 HTTP$ git clone http://domain.com/user/repo.git创建一个新的本地仓库:$ git init配置列出当前配置:$ git config --list列出翻译 2017-12-04 08:23:27 · 459 阅读 · 0 评论 -
程序人生 | 谁动了我的代码?
已经夜里十一点了,周锦峰仍端坐在办公桌前,盯着屏幕上的代码死命地挠头。明天就要上线了,代码却依然没有完全通过。周锦峰很疑惑,明明上周五刚刚做了集中测试,当时全都没问题的,按理说这周代码的改动也不多啊,团队就六七个人,大家提交代码之前都互相审阅,怎么就报错了呢?更让他想不通的是,屏幕上这个错误他隐约记得几个月前出现过,当时查了好多资料,最后用了一种很取巧的方法解决了,怎么今天又出现了呢?不幸的是,...原创 2019-03-10 12:41:41 · 668 阅读 · 0 评论