Git學習 版本控制 Git簡介與安裝

2022-04-28 15:27:13 字數 2236 閱讀 4622

當多人協作開發乙個長期的、大型的專案時,開發新版本時做出的改動帶來新 bug 是很常見的事情,如果新 bug 可以很快定位,那麼只要解決它然後繼續開發就可以了,但是如果新出現的 bug 難以直接定位呢(這並不少見,尤其是在專案依賴情況複雜的時候)?最好的辦法是用出現新bug的**,和沒出現該 bug 的**(即舊版本的**)進行比較,看看修改了哪些地方,然後對這些修改過的部分逐一排查,以確定導致新 bug 的原因。而這樣的做法,就需要我們保留專案的舊版本,以便未來檢視、對比、甚至回退1

。這樣的需求,就是版本控制。

最簡單的版本控制,就是自己手動儲存專案的各個版本,比如將專案的各個版本存在各個目錄中:project_v1、project_v2、project_v3,然後將正在開發的版本存在乙個單獨的目錄:project_v4_developing。但是這樣做的弊端太多,比如不能快速判斷各個版本的差異,不能實現比版本更細膩的歷史管理2

等等。當專案越來越大、歷史越來越長後,這些弊端將會令人難以忍受。

因此,我們需要有更專業的工具來實現對專案的版本控制,其中乙個著名的工具就是git。

git是一款免費、開源3

的分布式版本控制系統,最初由 linus torvalds 實現,目的是用於管理 linux 核心的開發。當然,現在的 git 和當初的 git 相比已經複雜了很多,普通使用者可能一輩子也用不到 git 的所有功能。

git 的分布式是相對於集中式而言的,兩者都是多人協作的工作模式。集中式系統採用乙個伺服器與多個客戶端協作的模式,核心是伺服器,大家繞著它轉,新的修改提交給伺服器以形成歷史記錄,舊的修改記錄也從伺服器獲取,如果伺服器崩潰了而又沒有事先做好備份的話,那麼整個系統就崩潰了,因為各個客戶端並沒有完整的伺服器資料。而在分布式系統中,參與者的地位是等同的,自己的新修改直接提交給自己以形成歷史記錄,然後分享給他人,以使他人擁有自己的修改記錄,從而實現共同開發,所有參與者都可以看作是伺服器。

此外,分布式的 git,也可以使用集中式的工作方法,道理非常簡單,既然所有參與者都相當於伺服器,那就可以讓大家選乙個機器作為集中式模式的伺服器,然後通過它來分享修改,這樣就實現了集中式的工作模式,而同時又不失分布式的優勢:當選定的伺服器崩潰後,可以從參與者中重選乙個伺服器。

當然,集中式系統也並非毫無優點,比如集中式的版本控制系統svn,其支援對路徑的許可權控制,從而可以更強力地控制開發人員的許可權。

在基於rpm的linux發布版本,如centos中,可以使用如下命令安裝git:

$ sudo dnf install git-all
在基於debian的linux發布版本,如ubuntu中,可以使用如下命令安裝git:

$ sudo apt install git-all
安裝完成後,可以通過git --versionwhich git來確認自己是否安裝成功,若安裝成功,則git --version會顯示當前安裝的 git 的版本,而which git則會在未安裝git時沒有輸出內容。

windows環境下安裝 git 有很多選擇,因為有很多基於git的圖形工具自帶git,不過本文推薦安裝標準的 git for windows(帶有圖形介面),可以點選此鏈結獲取安裝包。

雖然 git 支援 windows,但是依然建議在 linux 環境學習 git,原因有三:

學習搭建 git 伺服器,以及練習 git 遠端協作時,需要有「兩台機器」進行模擬,如果你沒有兩台實體機,那麼搭建虛擬機器是有必要的。

搭建乙個 linux 虛擬機器非常簡單,不比安裝 windows 困難,而且沒有盜版的風險,並且linux 簡介與安裝中有詳細的搭建步驟。

學習 git 往往是學習其命令(和基本原理),這些命令都是 linux 命令,而不是 windows 的 cmd 命令。當然,學會了命令操作後,借助 gui 操作就更加簡單了。

下一章我們將會介紹 git 的基本操作方式。

注釋:

1. 比如魔獸世界,2023年8月開放了懷舊服,而實現懷舊服必然是用到了「版本回退」以使用舊版本的源**(單純儲存舊版本程式是不夠的,因為懷舊服只是遊戲內容和過去一樣,賬號認證等其他部分是和當前匹配的,這就需要有舊版本的源**)。

2. 開發乙個新版本,往往有很多很多次修改,很多時候我們需要檢視某一次修改做出的改動,而不僅僅是檢視兩個版本間做出的改動。

3. git自身的源**是開放的,位於

版本控制與git

版本控制與git 自從第一台計算機出現,便出現了計算機語言 出現計算機語言之後,怎麼來管理這些 以及如何團隊協同合作開發一直成為業界頭疼的事 這篇文章便是介紹版本控制的發展史,以及如何實現版本管理的模型 下圖為版本控制的發展歷史 上圖基本上就是整個版本發展的歷史程序 1 patch diff 剛開始...

Git版本控制器 簡介

git 讀音為 g t 是乙個開源的分布式版本控制系統,可以有效 高速地處理從很小到非常大的專案版本管理。git 是 linus torvalds 為了幫助管理 linux 核心開發而開發的乙個開放原始碼的版本控制軟體。分布式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過轉殖 git...

GIT 版本控制學習 怎麼操作git

由於測試freeswitch不同版本的需要,研究了下git的使用,通過git來管理所有的版本,方便了測試。以下就總結下具體的使用方法 其中 git clone 是現在git倉庫 git tag 是檢視freeswitch的版本 git checkout v.是切換到指定的v.版本 git archi...