後端技術考古題-開發工具 下篇

閱讀時間約 4 分鐘

關於Git(一)

  1. 版本管理系統是什麼?為什麼要用?
  • 版本管理系統(Version Control System,VCS)是一種追蹤和管理項目代碼、文件和資源變更的工具。
  • 工作流程上可防止每個人因使用自己的開發程式搭配不同且不相容的工具所引起的混亂。版本控制會同步處理版本,並確定變更不會與其他人的變更衝突。當小組儲存新版本的程式碼時,版本控制會保留變更的歷程記錄,以及合併來自不同人員的修改。
  • 由於好的程式碼管理系統會大幅影響到開發效率,特別是當多人共同參與一個專案時。因此,工程師絕對需要版本管理系統。
  • 主要的版本管理系統有兩種類型:

集中式版本控制系統(Centralized Version Control System,CVCS): 所有的版本信息都保存在一個中央伺服器上,每次使用者檢出(checkout)代碼都是從這個中央伺服器獲取最新的版本。

例子:Subversion(SVN)

分散式版本控制系統(Distributed Version Control System,DVCS): 每個使用者擁有本地的完整版本庫,包括完整的歷史記錄。使用者可以在本地進行提交(commit)、分支(branch)和合併(merge),然後將這些更改推送(push)到其他地方。

例子:Git、Mercurial

為什麼要使用版本管理系統:

  • 協作: 允許多人同時在專案上工作,追蹤每個人的修改,並輕鬆地將這些修改合併在一起。
  • 歷史記錄: 提供了項目的完整歷史記錄,包括每一次的修改前和更動後的程式碼、修改者、修改時間和修改原因。這有助於了解代碼的演變過程。
raw-image


  • 版本控制: 可以方便地切換到項目的不同版本,當新版程式出現了錯誤,版本控制系統也可以非常快速地還原至舊版本。
raw-image


  • 利用分支同時開發不同功能: 使用「分支 (branch)」和「合併 (merge)」的技巧,讓開發者們能同時開發多個系統和功能,但在各自工作時,彼此之間的程式碼不會互相干擾。

下圖是某個專案的版本控制軟體截圖,給大家看看分支的真實呈現,在線圖上每一個點都是一個 commit (意即一組程式碼更動),其中分支 feature/payment 是一個獨立功能,負責的工程師在這個分支上持續開發,直到功能測試完成了,才整併到 dev 分支上;而 dev 這個分支又可能代表整個開發中的產品:

raw-image


  • 備份和還原: 提供了對項目的備份和還原功能,減少了由於錯誤或故障而導致的損失。
  1. 為什麼 Git 稱作「分散式」版本管理系統?

Git 已成為版本控制的全球標準。至於被稱為「分散式」版本管理系統,這是因為 Git 的工作方式和傳統的集中式版本管理系統不同。

※ 什麼式「分散式」版本管理系統?

簡單說每個開發者的本地存儲庫都包含完整的版本歷史和代碼庫。開發者可以在本地進行提交、分支操作等,而不需要即時與中央服務器通信。這使得每個開發者都具有獨立的本地存儲庫,不受中央服務器的影響。

  • 歷史(History)功能

在Repository (資料庫)裏的項目檔案具有歷史(History)功能。歷史(History)功能可以記錄一個項目(Project)在一段時間內的變化,它能告訴你在不同時間點內, 什麼人,在什麼時候,為什麼對項目中的那個檔案做出了什麼改動。

  • 開發功能
  1. 每個開發者都可以擁有獨立的檔案庫,所以可以直接對自己的檔案庫進行操作。
  2. 可以在離線的環境(例如飛機或高鐵之上)不中斷,連續工作,也可以持續進行修改,一方面獲得版本控制系統的支持(可以管理版本、查詢修改歷史、可以回溯、也可以持續提交寫下記錄訊息、……),另一方面也不需要將自己的修改,持續送至集中的檔案庫上,造成了其他開發者必須套用這些修改,引起可能的不穩定情況。
  3. 重視對分支(branch)的支援,具有較好的分支及合併的能力。
  4. 快速操作: 由於大部分操作都在本地進行,操作速度相對較快。
  • 優點:
  1. 免費
  2. 合併檔案速度非常快
  3. 儲存時間點速度非常快
    全端網頁開發專業知識分享
    留言0
    查看全部
    發表第一個留言支持創作者!
    認識MongoDB
    閱讀時間約 7 分鐘
    認識MySQL
    閱讀時間約 8 分鐘
    你可能也想看
    後端硬體輸出-解說 製作檔案後續流程 -->底片-->曬版-->印刷機---印刷 -->出版----------->印刷機---印刷 最先接觸的是底片機,那時照相機還是膠捲時代,而報紙與周刊要印刷前都是輸出成透明黑字圖底片,再經由曬版功序進入印刷機。 出片機 以下廠牌為當時最大宗(中譯名),西元年是我
    Thumbnail
    avatar
    怡伶
    2023-08-29
    非本科轉職後端工程師的心路歷程菜雞成長故事 寫這一篇主因也是因為身邊朋友陸陸續續想往軟體業發展,或是想動手做做小專案,故才成就了這一篇心路歷程,這邊會介紹我的背景、學習管道跟我如何選擇第一個程式語言作為敲門磚跟學習時間,希望能幫助還在努力中或是預計要轉職的各位有一個方向或是參考?(雖然我依然還是一個小菜雞,請鞭小力)
    Thumbnail
    avatar
    DDDDD
    2023-08-18
    【好想工作室 — 後端 (backend Camp)培訓心得(五):這麼多東西,要怎麼學最有效率?】初學後端的人,可能對如何學習後端技術或語言會感到很困惑。 本篇文章提供了作者的幾種思路,幫助後端學員進行學習
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(四):我快崩潰了,怎麼辦?】在工作室培訓難免會陷入低潮的原因,本篇文章分析了陷入低潮的原因,及提供預防及解決方法。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    好想工作室 — 後端 (backend Camp)培訓心得(三):我好想進來好想這篇文章針對對好想工作室後端培訓(backend camp)有興趣的人,給他們一些申請建議。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(二):backend camp 在幹嘛】本篇文章介紹了好想工作室後端培訓(backend camp)可能會遇到的各種狀況。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    【好想工作室 — 後端 (backend Camp)培訓心得(一):好想工作室簡介】簡單介紹好想工作室。 好想工作室是一個在台南的「資訊聚落」,提供免費的軟體工程師培訓,目前位於台南火車站旁。
    Thumbnail
    avatar
    結語JYu
    2023-04-01
    技術分享 | 如何成為後端工程師嗨 我是森妮 上週讓大家投票下一篇文章,沒想到後端工程師篇壓倒性勝利 前端工程師篇不知道大家喜不喜歡!陸續在IG有收到私訊有不少關於後端工程師的問題,我只要有時間都會回應,也歡迎來跟我聊聊天 【後端工程師】 [工作流程] 團隊中的PM、SA與客戶進行需求確認 [學習路徑] >基礎概念與工具
    Thumbnail
    avatar
    森妮後端工程師日常
    2022-09-07
    碳權商機|因應極端氣候與國際碳定價趨勢,蘇貞昌:積極修定《氣候法》,納 2050 淨零排放 隨著全球啟動「淨零競逐」(Race to Zero),以及國際碳定價趨勢越來越盛行,行政院長蘇貞昌 8 月要求環保署積極辦理「溫室氣體減量及管理法」修法作業,不僅要納入 2050 淨零排放的減排目標,也要加速台灣碳定價制度的擬定。 蘇貞昌:台灣深受極端氣候衝擊,氣候行動不應落於人後 今年台灣面臨嚴
    Thumbnail
    avatar
    本住人
    2021-09-11
    Laravel Socialite 實作前後端分離的第三方登入 API本文使用網站的 FB 登入做示範 採用 Laravel 8 + Socialite 5 使用 Session 記錄狀態 不同版本可能會有些許語法及方法上的差異,請自行調整 前言 最近因為碰到需要實作 OAuth 第三方登入的需求,只好把之前隨便看看的東西撿回來研究並實作。不過我找到多數現存的中文文章
    Thumbnail
    avatar
    hms5232
    2021-02-21