基於Git的網站自動發布流程淺析

來源:互聯網
上載者:User
文章目錄
  • 基本過程大概如下:
一、簡述
  1. 一個遠端Git代碼倉庫(用於管理提交的代碼);
  2. 發布人員登入發布機子,然後從這個Git代碼倉庫上pull下最新的代碼;
  3. 通過一個自動打包發布的指令碼,rsync(rcp or
    scp ?)到一個散發者,然後由這個散發者轉寄給所有的伺服器。
二、發布指令碼淺析

在上面的這些過程中,最重要的環節莫過於這個自動打包發布的指令碼了。

基本過程大概如下:
  1. 比較一下從git倉庫pull下來的代碼,和之前的代碼區別,主要是比較有哪些檔案改動過, 如通過一個命令:git diff commitid –name-only, commitid指代的是上次pull後的commit id,也就是之前沒有pull前的版本號碼。
  2. 擷取到改動的檔案後,遍曆每一個改動的檔案,並分類。如css檔案,js檔案,html檔案。
  3. 對不同的分類檔案,分別做相關處理。如css檔案,對應的加一個最新的版本號碼(一般使用的是md5),然後對應的修改所有引用到它的檔案,這塊也是最複雜的一部分,根據不同的網站,需要不一樣的處理邏輯。
  4. 儲存當前的版本號碼,如:git log –pretty -1 | awk ‘/^commit/{print $2}’。
  5. 將所有改動的檔案進行打包,發布到散發者。
三、後話

———— 以上都是我個人根據自己工作方式的猜想,有可能是錯的。 ————

給我你的看法吧~

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.