用git打更新包的辦法分享_linux shell

來源:互聯網
上載者:User

前言

相信很多人都有過這種經曆,當修改了一堆bug後,要更新代碼到伺服器上,此時,最簡單的方式是將專案檔全部上傳一次,這種方式可行,但不可取。為什麼?你懂的!

其實可以直接在伺服器用git pull代碼的方式來更新代碼,但如果遇到你的伺服器是linux伺服器並且不帶UI介面的,除非你命令列指令及git很熟悉,要不然遇到代碼衝突還是比較麻煩的,小編這方面的水平有限。當然也有其他原因,不推薦此方式更新。

下面,小編為大家介紹下利用git來打更新包。

打包原理:

利用git archive輸出兩個提交間的改變

NEW_COMMIT_ID_HERE 較新的提交ID

OLD_COMMIT_ID_HERE 較舊的提交ID(以此作為更新打包起始點)

現在我有兩次提交(commit)

第一次提交的ID為438eac0,提交了一個檔案

第二次提交的ID為4d5baf6,提交了三個檔案

然後按照上面打包指令:

git archive -o update.zip 4d5baf6 $(git diff –name-only 438eac0 4d5baf6)

執行一下指令,會發現目錄中多了一個update.zip壓縮檔

小編解壓檔案看一下有什麼內容

是小編第二個提交的檔案及目錄,這說明了OLD_COMMIT_ID_HERE僅作為打包的起始點,但並不包含OLD_COMMIT_ID_HERE提交的內容。

當然NEW_COMMIT_ID_HERE OLD_COMMIT_ID_HERE之間可以間隔多個COMMIT的,這樣就會打多個COMMIT的內容打包到一個壓縮包內。

最後,只要解壓出來的內容通過FTP工具上傳到伺服器即可。

總結

上面展示的內容只是單一的代碼更新,實際的更新可能還會涉及多個方面的,例如資料庫指令碼、設定檔等,小編在此文章中就不作過多的討論。有興趣的同學可以百度或者GOOGLE。

結束語

謝謝各位的閱讀,希望本文的內容對大家的學習和工作能帶來協助。如果有疑問可以留言討論,謝謝大家對雲棲社區的支援。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.