0%

现有企业的代码一般都是托管在 GitLab 上,其理由,无非是免费、可以部署到自己的服务器上,所有信息都掌握在自己手中,非常适合团队内部协作。而 Github 虽也致力于免费托管开源代码,但如需建立私有仓库就需付费,看到付费两字,很多人都望而却步。但在代码搜索方面,Github 做的比 GitLab 精彩。

如何弥补 GitLab 在智能搜索方面的缺憾呢,笔者想推荐个工具给你 ——— Sourcegraph,一款开源的代码搜索浏览工具。检索速度也是毫秒级的。

如何搭建呢?你听我娓娓道来。🥰

阅读全文 »

初出茅庐之时,看到他人的博客,总会产生一丝新鲜感,好奇之心让你不知不觉跟随着他人的脚步,在写作平台开始展露拳脚。

发布了两三篇文章后,又发现有些人并非在写作平台写作,而是在拥有自己域名的博客平台发布。就像小时候看到邻居小孩吃糖,不知甜不甜就想着自己也能吃一块。然后就开始折腾了,购买域名空间,独立搭建博客。

从写文章到搭建博客这思路是对的,但不乏带有点跟风之意。博客,技术圈的个人名片。特别是在招聘面试时,部分面试官会特别关注面试者是否有个人博客,一来从博客上能看出面试者的表达能力和涉猎,二来能看到个人的代码水平和编码习惯。

此外,博客的书写对个人也是一种技能锻炼。资料的整理,特别是技术问题的整理,有助于自己下一次遇到类似的问题时能否更好的回忆细节和复用相关代码。

但如何能又快又好的搭建,这是讲究方法的。

阅读全文 »

首先先声明下,我们今天要讲的并非客户端软件,而是“嵌入式”的 Markdown。

什么是嵌入式?嵌入式是计算机工程中的一个专业术语,即嵌入式系统。

嵌入式系统用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统。

本文中提到的嵌入式,其实更偏向于这种解释:一个可插拔的组件。

插上它,某个功能就会实现。拔掉,又不会影响系统运行。

Markdown是一种轻量级标记语言,易读易写,对图片、图标、数学式都有支持。可用于十几种编程语言,目前许多平台和框架都支持Markdown,主要应用在各个笔记和博客平台。

阅读全文 »

Git基础原理和使用参考

什么是git?


git是一款用来执行版本控制的软件,和Subversion、CVS具有相似的特性,例如可以保存修改历史、能恢复某些历史的修改等等,同时,git与传统的版本控制软件在设计思想和实现上差异比较大。
早期版本控制软件,例如Subversion,其依赖中心服务器以及客户端到服务器的网络连通性,服务器充当中心结点,所有客户端通过网络协议执行版本控制操作,如果无法连接网络服务,则无法执行相关操作,将这种控制软件方式称为集中式版本控制,其优点在于部署简便,不需要考虑多个客户端如何协作。这种软件架构在Linux内核这种强调协作开发模式时逐渐暴露缺陷,绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上。
与集中式对应的则是分布式版本控制,git就是分布式版本控制软件的一种,每个客户端都拥有完整的仓库代码,除非需要推送到远程,大部分操作是发生在本地文件系统,摆脱对于网络连通性的强依赖,甚至中心服务器故障时,可以使用某个客户端充当新的中心节点。

Linux内核开源社区从2002年开始使用BitKeeper,同样是一款分布式版本控制软件,在2005年BitKeeper的商业公司同Linux内核开源社区的合作关系结束,于是Linux内核开源社区不得不另起炉灶。最初他们对git有以下期待:

  • 速度
  • 简单的设计
  • 支持非线性开发模式即允许大量并行开发分支
  • 完全分布式
  • 有能力高效管理类似 Linux 内核一样的超大规模项目
阅读全文 »