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

更新於 發佈於 閱讀時間約 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
查看全部
avatar-img
發表第一個留言支持創作者!
※ MySQL是什麼? MySQL是一種開源(免費)的關聯式資料庫管理系統,所以任何人都可以免費使用,是Web開發中最常用的資料庫之一。MySQL 會將資料儲存在由資料列與資料欄組成的資料表中。使用者可使用結構化查詢語言 (通常稱為 SQL) 來定義、操控、控管及查詢資料。  簡單來說,資料
※ 什麼是MongoDB? MongoDB是一個開源、跨平台的非關聯式資料庫,屬於一種文件導向(Document-oriented database)的資料庫管理系統,也就是 NoSQL 數據庫管理系統(DBMS)。 ※ 什麼是非關聯式資料庫(NoSQL)? 非關聯式資料庫(NoSQL)的意思
※ 主題關鍵字 Git flow: ※ 說明: Git Flow 是一種基於 Git 版本控制系統的擴展,用於協助團隊進行項目的軟體開發和版本管理,就流程來說屬於概括性的流程。 這種工作流程定義了一組明確的分支模型,以協助有效地進行功能開發、修復錯誤和發布版本。 Git Flow
※ Express 專案步驟筆記清單 Node.js 環境建置核對 新增專案資料夾 設定 package.json npm init -y 設定程式入口為 app.js 安裝 Express:npm install express 設定主程式 app.js 建構應用程式伺服器 設定
※ 必考題一: Command Line 工程師面試時通常不會著墨太多在此科目上,考題只考涵蓋的基本指令。 ※ 說明:Command Line是使用純文字與電腦溝通的方式,和圖形化介面 GUI是不一樣的。 ※ 常用基本指令: pwd=print the current directory:顯
※ MySQL是什麼? MySQL是一種開源(免費)的關聯式資料庫管理系統,所以任何人都可以免費使用,是Web開發中最常用的資料庫之一。MySQL 會將資料儲存在由資料列與資料欄組成的資料表中。使用者可使用結構化查詢語言 (通常稱為 SQL) 來定義、操控、控管及查詢資料。  簡單來說,資料
※ 什麼是MongoDB? MongoDB是一個開源、跨平台的非關聯式資料庫,屬於一種文件導向(Document-oriented database)的資料庫管理系統,也就是 NoSQL 數據庫管理系統(DBMS)。 ※ 什麼是非關聯式資料庫(NoSQL)? 非關聯式資料庫(NoSQL)的意思
※ 主題關鍵字 Git flow: ※ 說明: Git Flow 是一種基於 Git 版本控制系統的擴展,用於協助團隊進行項目的軟體開發和版本管理,就流程來說屬於概括性的流程。 這種工作流程定義了一組明確的分支模型,以協助有效地進行功能開發、修復錯誤和發布版本。 Git Flow
※ Express 專案步驟筆記清單 Node.js 環境建置核對 新增專案資料夾 設定 package.json npm init -y 設定程式入口為 app.js 安裝 Express:npm install express 設定主程式 app.js 建構應用程式伺服器 設定
※ 必考題一: Command Line 工程師面試時通常不會著墨太多在此科目上,考題只考涵蓋的基本指令。 ※ 說明:Command Line是使用純文字與電腦溝通的方式,和圖形化介面 GUI是不一樣的。 ※ 常用基本指令: pwd=print the current directory:顯
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Windows : 下載Git (git-scm.com)並按照指示安裝。 安裝完成後,你可以通過運行以下命令來確認安裝是否成功: git --version 初次設定GIT 接下來就是按照初次設定git,會需要配置你的用戶名和電子郵件地址,這些信息將被記錄在您提交的每個變更中。 git
版本控制 (Version Control), 是一種追蹤檔案被更改歷史的技術, 是團隊合作必備的工作實務[1]。 我在博士一二年級時期, 比較像是單打獨鬥, 與合作的學弟妹也是一對一溝通, 可以維持同步,把研究成果做出來。 然而,當我到博士三年級以後,
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇文章將介紹工程師使用版控和git的相關知識和技能,包括版本控制的意義和git的基本指令,以及開發流程和webhook的概念。
Windows : 下載Git (git-scm.com)並按照指示安裝。 安裝完成後,你可以通過運行以下命令來確認安裝是否成功: git --version 初次設定GIT 接下來就是按照初次設定git,會需要配置你的用戶名和電子郵件地址,這些信息將被記錄在您提交的每個變更中。 git
版本控制 (Version Control), 是一種追蹤檔案被更改歷史的技術, 是團隊合作必備的工作實務[1]。 我在博士一二年級時期, 比較像是單打獨鬥, 與合作的學弟妹也是一對一溝通, 可以維持同步,把研究成果做出來。 然而,當我到博士三年級以後,
Thumbnail
因為最近想嘗試編碼風格,於是就選了一套比較"不嚴格"的輔助工具來摸索。 編輯器 VS CODE 框架 VUE3 打包工具 VITE 編碼風格 Standard 環境 version { "nodejs":"v18.18.0", "npm":"9.8.1" }
Thumbnail
本篇文章介紹如何使用Git Bash進行版本控制操作,包括創建repository、查看狀態、歷程以及加入暫存和提交暫存等操作。透過基本的Git指令,您可以更深入地瞭解Git工具的使用方法。
Thumbnail
這一集用最新的Vite工具去創建初始檔案。Vite用於創建和構建Web應用程序,具有快速的啟動時間、即時熱更新、小型體積、支持多種框架和可擴展性等優點。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
確保沒有遺漏或錯誤 程式的完整資訊資料對於程式設計至關重要。這是因為只有透過完整的資訊,我們才能確保在程式設計中沒有任何遺漏或錯誤。最終,後台管理扮演著管理系統中所有動作和行為是否符合特定標準的重要角色。 採取不符合預期的行動 這種符合性的重要性在於,當我們設計程式時,希望使用者按照預期的方式
Thumbnail
權限管理=新增、修改、刪除+審核 通常,這種程式的設計會包含權限管理,其中包括現場修改、刪除等三大類功能。然而,根據經驗,我們還需要關注另一類功能,即審核權限。 審核不執行新增 審核權限通常不執行新增的動作,僅限於某些欄位的輸入。新增、修改、刪除這些操作基本上是容易理解的。也就是說,對於這個工