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

更新於 發佈於 閱讀時間約 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. 儲存時間點速度非常快
留言
avatar-img
留言分享你的想法!
avatar-img
奧莉薇走在成為後端工程師之路上
23會員
167內容數
全端網頁開發專業知識分享
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 場景: 即時聊天應用: 設計一個支持多房間功能的即時聊天平台,像 WhatsApp、LINE或Facebook Messenger,提供文字、語音、視訊聊天功能,方便管理群組聊天。 功能亮點:加入特別功能,例如可加入多房間功能、使用者名單、表情符號支持、文件分享或訊息已讀未讀狀態。 展示
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/26
※ 先建立基本的express後端服務: 1.建立新資料夾:Socket mkdir socket 2.進入資料夾:Socket cd ​bsocket 3. 安裝 Experss 到專案中 npm init -y //初始化專案,建立 package.json 檔 npm insta
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
2025/04/10
※ 什麼是 Socket.io:一個基於傳統 WebSocket API 之上的框架。 ※ Socket.io常用功能: Custom Events:在 Socket.io 中,開發者可以創建自己的事件來處理特定的功能或需求。 Rooms:分組的功能。每個連接的用戶(或稱為 socket)可
Thumbnail
看更多
你可能也想看
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
Thumbnail
CSS 的繼承性是開發網頁樣式時的一個重要概念,它使得樣式設計更加靈活和高效,有助於提高程式碼的可讀性、一致性和可重用性,並加快開發速度,從而提供更好的開發體驗。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
本文將介紹Gitlab與GitHub的差異,以及在本地環境部署Gitlab的流程與實作。文章內容包括版本管理系統的選擇,Gitlab的基本功能,以及使用Docker進行部署的詳細步驟。
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News