分享

我与阿里云的一千零一夜-010-挑个趁手兵器(其二)

 偏扁豆 2021-11-25

0x0 前言

自动拉取是云原生的一个重要特征,无论是自动拉取源代码,还是自动拉取依赖库,还是自动拉取软件包,乃至自动拉取容器镜像等,自动拉取直接服务于持续集成(Continuous Integration)。对于一个需要持续更迭的线上项目来说,“持续”二字太重要,毕竟大家都面对着激烈的竞争。举个例子,某公司创意产品一直在流量榜前几位,马上就要推出自己的盈利点了,当然也有好几家竞品在虎视眈眈,这时候在在线升级的时候出现了拉取问题,版本问题也罢,功能bug也罢,集群过载也罢,总之就被别的公司抢了先机。

目前对于个人开发者而言,持续集成的理念完全由git的思想先入为主,倒也没有什么太大问题。持续集成、持续交付、持续部署的过程如下图所示,在merge这一环节,仅剩git和svn两大技术,svn也越来越少。


0x1 关于Git历史

为了更好的版本管理。

最开始人们使用单文件的时候,另存为一下重命名个日期,版本管理就完成了;那多个文件呢?重新复制整个文件夹,文件夹重新命个名字就好了。

几个问题:成本太高(存储,每次比对的校验计算),不好协作,不好回退,不好分发。

不好协作对于大公司而言是个大问题,SVN应运而生,利用开发分支和锁概念,每个人都可以很好向汇总的服务器端提交自己的代码,最后形成一个整体,而且可以较好地实现服务器端的回退和向客户的分发。

svn简单易上手,但分支管理就是采用文件夹复制的类似模式,成本还是太高,而且过分依赖网络,在分布式开发成为常态的今天集中存储于服务端缺点的弊端越来越明显。

于是BitKeeper就出现了,作为git的原型,BitKeeper刚开始是闭源的,引入了很多现在git的技术理念:比如引入修改模型元数据、仓库等一系列概念。可惜不开源,Linux之父Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,Git开源,后来又出现了Github这一代码托管服务网站,火遍大江南北。

2018年6月4日,微软宣布,通过75亿美元的股票交易收购代码托管平台GitHub。


0x2 关于Git

Git客户端安装很简单,Linux下使用包管理工具比如yum,windows使用官网安装包安装即可。

对于Git第一步的使用,还是有几个必要关键的点。

# 第一步是确定自己的身份git config --global user.name "xx"  git config --global user.email "xx@xx.com" # 第二步是让远端服务器信任自己# 例如github就是使用ssh进行工作的# 事先要生成自己的密钥对,加密过程通信安全ssh-keygen -t rsa -C "git的邮箱"# 将生成的公钥复制到git服务端# 这一步一般是在网页上完成
# 第三步,本地仓库的一些操作# 初始化本地仓库/创建新的仓库git init # 复制一个新的仓库git clone /path/to/repositorygit clone username@host:/path/to/repository# 添加与提交git add <filename>git add *git commit -m "代码提交信息"
# 分支管理# 创建一个叫做“feature_x”的分支,并切换过去git checkout -b feature_x# 切换回主分支:git checkout master# 再把新建的分支删掉:git branch -d feature_x

# 第四步:与服务器端仓库的互动# 增加远端仓库地址git remote add origin <server_git># 将本地仓库同步到github远程仓库主分支git push -u origin master# 如果有分支的话,除非你将分支推送到远端仓库,不然该分支就是 不为他人所见的:git push origin <branch>
# 第五步:更新与合并# 要更新你的本地仓库至最新改动git pull# 要合并其他分支到你的当前分支(例如 master)git merge <branch># 有冲突的话,逐个选择接受谁的
0x3 小结

工具和技术的使用不是绝对的,有时候做一个ppt能做到千万融资,这就胜过融资前展示演示的软件代码。

瑞士军刀不一定比不上屠龙宝刀,袖珍手枪对历史的影响也不亚于导弹大炮。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多