版本控制系統之Git學習一

2021-09-27 13:24:29 字數 2243 閱讀 6808

分布式版本控制系統沒有**伺服器概念,每個人的電腦都是乙個完整的版本庫,此時不需要聯網就可以正常工作。

那多人如何進行協作呢?a在自己的電腦上修改了檔案x,b也在自己的電腦上修改了檔案x,此時,ab之間只需將各自的修改推送給對方,就可以看到對方的修改。

分布式版本控制系統相比於集中式來說,安全性更高。

實際工作中,分布式版本控制系統通常有一台充當「**伺服器」的電腦,但作用僅僅是用來方便「交換」大家的修改。

輸入以下命令,檢視是否安裝git

git
若列印出git的相關使用資訊,則表明安裝成功;

在linux上安裝

sudo

apt-get

install

git

若系統為mac

首先安裝homebrew,然後通過homebrew安裝git,具體參考

版本庫又名倉庫,可以理解為乙個目錄,這個目錄裡的所有檔案都可以被git管理起來,每個檔案的修改、刪除,git都能跟蹤。

建立版本庫的方法(在非空目錄下也可以建立)

mkdir learn_git

cd learn_git

git init

此時建立乙個空的倉庫,並且在當前目錄下生成了乙個.git的目錄,這個目錄是git用來跟蹤版本管理庫的。

輸入命令,就可以看到,以.開頭的目錄,預設是隱藏的

ls -ah
git add file.txt
2.輸入命令

git commit -m "wrote a file.txt"
git commit是將檔案新增倉庫,-m後面輸入的是本次提交的說明,可以輸入任意內容。

git commit可以一次提交很多檔案,如以下命令

git add file1.txt file2.txt

git add file3.txt

git commit -m "add 3 files."

當需要將檔案進行修改,然後把修改提交到git版本庫中,具體操作步驟是,將檔案進行修改,然後重新執行一遍將檔案新增到版本庫的操作。

當然,當倉庫中沒有新的檔案新增,可以使用命令:

git commit -a
-a 引數表示自動新增已跟蹤檔案(即之前提交過的檔案)中的改動。

命令執行後,會彈出編輯器,此時,可以寫入描述性的提交資訊。

檔案經過多次修改之後,提交到版本庫,可以使用命令

git log
git log命令顯示從最近到最遠的提交日誌

另外,可以加上引數–pretty=online檢視簡化版的日誌

git log --pretty=oneline
列印結果如下(已經修改過三次file.txt檔案)

此時,列印的結果是一大串類似於7f9436…,表示的是commit id版本號;

若此時想將當前版本回退到上乙個版本,可以使用

git reset --hard head^
在git中,用head表示當前版本,head^表示上乙個版本,…

此時,按照同樣的方法,可以再回退到最開始的那個版本(目前一共編輯了3個版本)

若此時要重新回到第三次提交的那個版本要怎麼操作呢?

此時要保證當前命令列視窗沒有關閉過

第一步:

順著命令列視窗的列印資訊,找到回退之前的log資訊,並提取出第三次提交的那個版本的commit id,即7f9436…那一串

第二步:

git reset --hard 7f9436
commit id 只需寫前幾位就行,git會自動去找

若找不到commit id 要怎麼辦呢?比如已經關機

此時可以輸入命令

git reflog
這個命令用來記錄你的每一次命令,從這個命令的輸出結果去查詢commit id,再進行reset就可以了。

git版本回退的原理:

git在內部有個指向當前版本的head指標,當需要回退版本的時候,只需將head指向所需要的版本號。

版本控制系統之GIT

版本控制系統作用 記錄 管理和跟蹤整個 開發過程,確保不同開發人員之間的 同步。git 開發者 linux作者 奈斯.託瓦斯 特點 開源 免費 同類的還有svn,兩者為市場主要使用的版本控制系統,svn定位於企業級,區別主要為svn許可權較高,且為集中式版本控制系統,必須連上svn伺服器 git為分...

版本控制系統 Git學習

同生活中的偉大事件一樣,git 誕生於乙個極富紛爭大舉創新的年代。linux 核心開源專案有著為數眾廣的參與者。絕大多數的 linux 核心維護工作都花在了提交補丁和儲存歸檔的繁瑣事務上 1991 2002年間 到 2002 年,整個專案組開始啟用分布式版本控制系統 bitkeeper 來管理和維護...

版本控制系統之Git學習五

標籤是版本庫的乙個快照,發布乙個版本時,通常現在版本庫中設定乙個標籤,這樣就唯一確定了打標籤時刻的版本。標籤是與某個版本commit聯絡在一起的,commit id一般是一串字元,不容易查詢,這時候若對這個發布版本設定了乙個標籤,要查詢這個標籤就容易多了。git tag 設定新的標籤 git tag...