自動拉取是云原生的一個重要特征,無論是自動拉取源代碼,還是自動拉取依賴庫,還是自動拉取軟件包,乃至自動拉取容器鏡像等,自動拉取直接服務(wù)于持續(xù)集成(Continuous Integration)。對于一個需要持續(xù)更迭的線上項(xiàng)目來說,“持續(xù)”二字太重要,畢竟大家都面對著激烈的競爭。舉個例子,某公司創(chuàng)意產(chǎn)品一直在流量榜前幾位,馬上就要推出自己的盈利點(diǎn)了,當(dāng)然也有好幾家競品在虎視眈眈,這時候在在線升級的時候出現(xiàn)了拉取問題,版本問題也罷,功能bug也罷,集群過載也罷,總之就被別的公司搶了先機(jī)。目前對于個人開發(fā)者而言,持續(xù)集成的理念完全由git的思想先入為主,倒也沒有什么太大問題。持續(xù)集成、持續(xù)交付、持續(xù)部署的過程如下圖所示,在merge這一環(huán)節(jié),僅剩git和svn兩大技術(shù),svn也越來越少。 最開始人們使用單文件的時候,另存為一下重命名個日期,版本管理就完成了;那多個文件呢?重新復(fù)制整個文件夾,文件夾重新命個名字就好了。幾個問題:成本太高(存儲,每次比對的校驗(yàn)計(jì)算),不好協(xié)作,不好回退,不好分發(fā)。 不好協(xié)作對于大公司而言是個大問題,SVN應(yīng)運(yùn)而生,利用開發(fā)分支和鎖概念,每個人都可以很好向匯總的服務(wù)器端提交自己的代碼,最后形成一個整體,而且可以較好地實(shí)現(xiàn)服務(wù)器端的回退和向客戶的分發(fā)。svn簡單易上手,但分支管理就是采用文件夾復(fù)制的類似模式,成本還是太高,而且過分依賴網(wǎng)絡(luò),在分布式開發(fā)成為常態(tài)的今天集中存儲于服務(wù)端缺點(diǎn)的弊端越來越明顯。于是BitKeeper就出現(xiàn)了,作為git的原型,BitKeeper剛開始是閉源的,引入了很多現(xiàn)在git的技術(shù)理念:比如引入修改模型元數(shù)據(jù)、倉庫等一系列概念??上Р婚_源,Linux之父Torvalds 開始著手開發(fā) Git 是為了作為一種過渡方案來替代 BitKeeper,Git開源,后來又出現(xiàn)了Github這一代碼托管服務(wù)網(wǎng)站,火遍大江南北。2018年6月4日,微軟宣布,通過75億美元的股票交易收購代碼托管平臺GitHub。 Git客戶端安裝很簡單,Linux下使用包管理工具比如yum,windows使用官網(wǎng)安裝包安裝即可。 對于Git第一步的使用,還是有幾個必要關(guān)鍵的點(diǎn)。
# 第一步是確定自己的身份 git config --global user.name "xx" git config --global user.email "xx@xx.com" # 第二步是讓遠(yuǎn)端服務(wù)器信任自己 # 例如github就是使用ssh進(jìn)行工作的 # 事先要生成自己的密鑰對,加密過程通信安全 ssh-keygen -t rsa -C "git的郵箱" # 將生成的公鑰復(fù)制到git服務(wù)端 # 這一步一般是在網(wǎng)頁上完成
# 第三步,本地倉庫的一些操作 # 初始化本地倉庫/創(chuàng)建新的倉庫 git init # 復(fù)制一個新的倉庫 git clone /path/to/repository git clone username@host:/path/to/repository # 添加與提交 git add <filename> git add * git commit -m "代碼提交信息" # 分支管理 # 創(chuàng)建一個叫做“feature_x”的分支,并切換過去 git checkout -b feature_x # 切換回主分支: git checkout master # 再把新建的分支刪掉: git branch -d feature_x # 第四步:與服務(wù)器端倉庫的互動 # 增加遠(yuǎn)端倉庫地址 git remote add origin <server_git> # 將本地倉庫同步到github遠(yuǎn)程倉庫主分支 git push -u origin master # 如果有分支的話,除非你將分支推送到遠(yuǎn)端倉庫,不然該分支就是 不為他人所見的: git push origin <branch>
# 第五步:更新與合并 # 要更新你的本地倉庫至最新改動 git pull # 要合并其他分支到你的當(dāng)前分支(例如 master) git merge <branch> # 有沖突的話,逐個選擇接受誰的 工具和技術(shù)的使用不是絕對的,有時候做一個ppt能做到千萬融資,這就勝過融資前展示演示的軟件代碼。 瑞士軍刀不一定比不上屠龍寶刀,袖珍手槍對歷史的影響也不亞于導(dǎo)彈大炮。
|