Skip to content

強大的非中心式的版本控制系統

Notifications You must be signed in to change notification settings

libre-knowledge/git

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Git 版本控制系統

強大的非中心式的版本控制系統

https://gitlab.com/libre-knowledge/git
GitLab CI 持續整合流程狀態標章 「檢查專案中的潛在問題」GitHub Actions 作業流程狀態標章 pre-commit REUSE 規範遵從狀態標章

特色

  • 能有效率地處理大規模的版控庫
  • 最早使用於 Linux 作業系統核心開發,後被大多數軟體專案採用
  • 為分散式(非中心式)版本控制系統,大多數非涉及遠端操作可直接於本地進行

基本概念

修訂版(revision)修訂版提交(commit(名詞))

版本控制系統中內容變動的單位,在 Git 版本控制系統中修訂版(revision)跟 commit 的名詞部份意義相同

修訂歷史(history)

被版本控制的內容所變動的歷程,在 Git 版本控制系統中修訂歷史(history)是由一系列互相連接的修訂版提交(commit(名詞))所構成

有向無環圖(Directed acyclic graph)

Git 版本控制系統修訂歷史(history)所構成的圖形graph,有方向性(較早的修訂版提交(commit(名詞))指向較晚的修訂版提交(commit(名詞)))但不存在首尾為同一修訂版提交(commit(名詞))之組成環路cycle的狀況

提交(commit(動詞))

提交新的修訂版(revision)版控庫repository中的動作

新修訂版準備區域staging area

在提交前集中要加進新修訂版中的內容變更的地方,又稱為 index

Git 掛勾程序hook

可以掛接hook (v.)在特定 Git 操作,在其運行前/後觸發執行的程序,參閱 githooks(5) 的使用手冊頁面manpage

常用的 Git 子命令

  • init
    初始化一版控庫
  • config
    配置系統全域、使用者全域或版控庫範圍的 Git 設定選項
  • status
    查詢版控庫當前狀態
  • add
    將內容變更移入新修訂版準備區域(staging area)
  • rm
    將被版控檔案移除並將此變更移入新修訂版準備區域(staging area)
  • commit
    建立一新修訂版(revision)並將其提交進版控庫
  • diff
    查看修訂版參照間的內容差異
  • log
    查看版本紀錄
  • remote
    管理遠端版控庫
  • push
    將本地版控庫當前分支歷史推送至遠端版控庫
  • pull
    將遠端版控庫追蹤分之歷史拉取並合併回本地版控庫當前分支
  • reset
    重設參照指標及/或當前工作樹內容

解決方案

以下列舉本主題相關的解決方案:

參考資料

中文教學文件

※使用的專有術語翻譯可能會有不精確的情況,以原文為主

原文教學文件

其他


本主題為自由知識協作平台的一部分,除部份特別標註之經合理使用(fair use)原則使用的內容外允許公眾於授權範圍內自由使用

如有任何問題,歡迎於本主題的議題追蹤系統創建新議題反饋