版本控制

对于一些大型的软件开发项目,通常我们无法做到一次性完成。也难以避免版本定型后,在未来可能还会面临着大幅度的修改与重写。不要说那种动不动就上万行的项目,即使是编写一个几百行的常规性事物,惯例也是需要在需求方与程序员之间来回商讨、切磋甚至相互掐架中形成一套可行方案,然后再开始落实写代码。因此,保持一份项目从始至终的修改记录是十分重要的,一来是方便「未来的自己」追踪代码在哪里被修改过、当时修改的理由等,二来有利于团队其他小伙伴接手后能够快速查找代码变动、快速定位 bug 究竟是由于什么原因造成。

版本控制(version control)这个概念其实并不新颖,但是以前的做法相对冗余、拖沓,每次对比修改的部分都十分麻烦。正是厌烦了这个领域的高度无效,大神Linux便决定开发一套全新的版本控制系统,以满足现在编程的诉求。大神果然是大神,竟然在短短的三天之内便开发成型了——Git,这个当前正被全世界大量开发者使用的现代化版本控制系统。可以说,掌握基本的Git知识是一个合格程序员的必备技能。

Github

Github 号称是「全球最大的同性交友平台」(主要是因为大部分写代码的都是程序),是一款基于现代流行的版本控制系统Git 的代码托管网站。如果是个人开发者,Github可以提供免费的项目托管,且不限制数量(但单个上传文件的大小有要求尽量保持在 50Mb以内),但这个前提是代码只能对全网公开,也就是说,个人免费的托管项目如果涉及到一些敏感的信息,如公司专有技术、账号、密码等关键的配置信息,则通通暴露在互联网上,存在被不法人士利用从而对公司和个人造成威胁。当然,如果是金主的话,也可以用每月*7$*的价格来购买不超过5个repo作为私有托管。

但终归把公司关键的技术代码放在别人家,依然存在代码泄露的潜在风险,而且对于我们这类金融企业,一旦发生代码泄露,其后果是相当可怕的。

总而言之,我们希望个人开发者可以更好的利用Github提供的优质服务,但同时要求但凡涉及到公司核心技术与敏感信息的代码,决不允许托管在公网服务器,而是必须存放在本地服务器。

搭建私有Git服务器

这就牵扯出如何设计本地(公司私有)服务器上运行的Git框架,如何做权限进行合理分配,如何控制每次版本发生改动后的记录保存。这里面需要考虑的技术细节非常多。我也一直希望能够找到一套相对靠谱的操作文档进行学习。这不赶巧,正好看到以下的这篇博客介绍了如何在服务器部署Git,以及对项目进行版本控制的简单流程。

本文是以为记,待日后在公司服务器部署完成后,再补充具体的操作流程和代码展示。

参考资源

<blockquote style="margin-top: 5px; margin-bottom: 0px;">
How to Run Your Own Git Server
</blockquote>
<iframe src="https://www.linux.com/learn/how-run-your-own-git-server" style="width:100%; height:550px; 
border-left:3px solid rgba(192,91,77,.3);
border-right:0px solid rgba(192,91,77,.3);
border-top: 0px solid rgb(235, 205, 200);
border-bottom: 3px solid rgba(192,91,77,.3);">
</iframe>

<p style="margin-top: 0px; text-align:right; font-size:10px;">
<a target="_blank" 
href="https://www.linux.com/learn/how-run-your-own-git-server">
  全屏查看
</a>
</p>