首頁>Club>
企業裡面都是怎麼進行程式碼管理的?
4
回覆列表
  • 1 # 蟲蟲安全

    Git是現代程式設計師必備技能,這是無疑的!

    為什麼這麼說了呢?很多人以為Git就是一個版本管理,用以替代傳統的SVN的用來版本管理的,世界上不止於此。

    SVN和Git對比

    首先,相比較SVN,Git天然分散式不怕變化丟失。每一個Git倉庫,除了遠端庫,本地都必然會有一份,確保程式碼永遠不會丟是。

    其次,相比較SVN,Git不以檔案為中心,使用檔案快照及其雜湊構成的Git物件資料庫和head指標,分支指標,標籤指標構成的變化指標鏈。所以各種操作都是很快捷高效,比如拉個分支就是新建一個指標,指向某個commit,標籤也是。這對比SVN的中檔案目錄分支管理效能提高了不止百倍,空間也能大量節省。

    上面一部分說了Git不以檔案為中心。實際上在Git服務端(遠端倉),除了git檔案下的各種物件資料,沒有任何檔案(裸Git倉)。而在本地,則分為工作區(目前的檔案和目錄狀態)、快取區(又叫stage區,git add後儲存的變化)和歷史記錄區(git commit後的歸檔資料)加上遠端倉庫,共計四區五種狀態(檔案狀態:為修改、已修改、已暫存,已經提交,已經推送)

    這些層次設計和檔案狀態,可以最大程度儲存你對程式碼的每一行變化,保證不會由於某種因素丟程式碼。另外Git還提供了額外的 git stash來儲存你當前的工作狀態。對程式設計師來說程式碼就是生成力,每一行程式碼都是勤勞的結晶,都是智力碰撞下產生的精靈!如果是一個文件丟了,你很懊惱;如果你的程式碼丟了,重寫可能就完全沒有靈感了。而Git的機制可以保障你的程式碼不會丟失,這SVN和其他版本管理軟體不能給你保證。

    Git生產力工具

    還有很多非常適配開發者的工具,比如git blame,git bisect,git-cherry-pick包括前面提到git stash等等,可以極大的提高程式設計師的效率。跟多這些用法,可以關注蟲蟲,參考蟲蟲的git相關文章。

    社交化和多人協作

    基於Fork和PR/MR的社交會專案協作流程,極大促進了開源專案和Git發展,也狀大了Github、Gitlab、中國產的碼雲等Git託管服務網站。大量開源專案透過這些平臺釋出,大量的開發者透過他們參與到專案中。比如996的專案一天就內就達到好幾萬的Star和大量Fork ,大量PR,這些就是Git和開源協作的力量!目前該專案的資料:

    基於Git的CI/CD和DevOps

    透過Github webhook 以及Gitlab runner把開發環境和上產環境一棧式關聯起來實現:程式碼碼Push,自動Build、自動Test、安全掃描、自動釋出的一棧式DevOps流程。釋放了開發人員在這些流程上耗費的時間和精力從而專注於Coding,真正實現實現XP開發迭代。j結合雲和容器的技術的發展,也納入了這個開發和實施的環節,實現配置即服務。程式設計師要做只是寫程式碼,其他事情push給Git,Git自動觸發即可。

  • 中秋節和大豐收的關聯?
  • 如何在《明日之後》中選個好營地?