GIT 分布式版本控制系統

2021-09-01 11:50:05 字數 4108 閱讀 2049

git是一款免費、開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的專案,可以有效、高速的處理從很小到非常大的專案版本管理。

分布式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過轉殖(git clone),在本地機器上拷貝乙個完整的git倉庫。

學習git可以搜尋

git簡明指南

git 完整命令手冊位址

pdf 版命令手冊

git教程

git圖形化操作外掛程式:小烏龜

1、從伺服器上轉殖完整的git倉庫(包括**和版本資訊)到單機上。

2、在自己的機器上根據不同的開發目的,建立分支,修改**。

3、在單機上自己建立的分支上提交**。

4、在單機上合併分支。

5、把伺服器上最新版的**fetch下來,然後跟自己的主分支合併。

6、生成補丁(patch),把補丁傳送給主開發者。

7、看主開發者的反饋,如果主開發者發現兩個一般開發者之間有衝突(他們之間可以合作解決的衝突),就會要求他們先解決衝突,然後再由其中乙個人提交。如果主開發者可以自己解決,或者沒有衝突,就通過。

8、一般開發者之間解決衝突的方法,開發者之間可以使用pull 命令解決衝突,解決完衝突之後再向主開發者提交補丁。

1、檢視郵件或者通過其它方式檢視一般開發者的提交狀態。

2、打上補丁,解決衝突(可以自己解決,也可以要求開發者之間解決以後再重新提交,如果是開源專案,還要決定哪些補丁有用,哪些不用)。

3、向公共伺服器提交結果,然後通知所有開發人員。

適合分布式開發,強調個體。

公共伺服器壓力和資料量都不會太大。

速度快、靈活。

任意兩個開發者之間可以很容易的解決衝突。

離線工作。

資料少(起碼中文資料很少)。

學習週期相對而言比較長。

不符合常規思維。

**保密性差,一旦開發者把整個庫轉殖下來就可以完全公開所有**和版本資訊。

在使用git前我們需要先安裝 git。git 目前支援 linux/unix、solaris、mac和 windows 平台上執行。

完成安裝之後,就可以使用命令列的 git 工具(已經自帶了 ssh 客戶端)了,另外還有乙個圖形介面的 git 專案管理工具。

在開始選單裡找到"git"->"git bash",會彈出 git 命令視窗,你可以在該視窗進行 git 操作。

通過git init命令把所在目錄變成git可以管理的倉庫:

$ git init

initialized empty git repository in /users/michael/learngit/.git/

windows系統,為了避免遇到各種莫名其妙的問題,請確保目錄名(包括父目錄)不包含中文。

使用 git clone 拷貝乙個 git 倉庫到本地,讓自己能夠檢視該專案,或者進行修改。

如果你需要與他人合作乙個專案,或者想要複製乙個專案,看看**,你就可以轉殖那個專案。 執行命令:

git clone [url]
[url] 為你想要複製的專案,就可以了。

用命令git add告訴git,把檔案新增到倉庫:

$ git add readme.txt
執行上面的命令,沒有回應顯示。

第二步,用命令git commit告訴git,把檔案提交到倉庫:

$ git commit -m "wrote a readme file"

[master (root-commit) cb926e7] wrote a readme file

1 file changed, 2 insertions(+)

create mode 100644 readme.txt

git commit命令,-m後面輸入的是本次提交的說明,可以輸入任意內容

git status 以檢視在你上次提交之後是否有修改。

演示該命令的時候加了 -s 引數,以獲得簡短的結果輸出。如果沒加該引數會詳細輸出內容:

git diff,顧名思義就是檢視difference,顯示的格式正是unix通用的diff格式

執行 git diff 來檢視執行 git status 的結果的詳細資訊。

git diff 命令顯示已寫入快取與已修改但尚未寫入快取的改動的區別。git diff 有兩個主要的應用場景。

git status 顯示你上次提交更新後的更改或者寫入快取的改動, 而 git diff 一行一行地顯示這些改動具體是啥。

接下來我們來檢視下 git diff --cached 的執行效果:

使用 git add 命令將想要快照的內容寫入快取區, 而執行 git commit 將快取區內容新增到倉庫中。

git 為你的每乙個提交都記錄你的名字與電子郵箱位址,所以第一步需要配置使用者名稱和郵箱位址。

$ git config --global user.name "******xx"

$ git config --global user.email ***@***xx.com

如果你覺得 git add 提交快取的流程太過繁瑣,git 也允許你用 -a 選項跳過這一步。命令格式如下:

git commit -a
git rm 會將條目從快取區中移除。這與 git reset head 將條目取消快取是有區別的。 "取消快取"的意思就是將快取區恢復為我們做出修改之前的樣子。

預設情況下,git rm file會將檔案從快取區和你的硬碟中(工作目錄)刪除。

如果你要在工作目錄中留著該檔案,可以使用git rm --cached

在本地建立新的分支:git branch 分支名稱(分支名稱一般格式為feature-實現的功能)

切換分支:git checkout 分支名

刪除分支:git branch -d 分支名

檢視當前專案中**狀態:git status和git status . 後者代表的是當前專案所有檔案,注意最後有個點「 . 」

新增檔案:git add 檔案目錄/檔名 和git add . 後者代表當前目錄下所有檔案提交到暫存區,注意最後有個點「 . 」

提交到本地分支:git commit -m "標籤註解"

提交到遠端分支:git push origin 遠端分支名

將遠端的**拉到本地分支:git pull origin 分支名;如果有衝突,可以用git status檢視有衝突的檔案。pull=fetch+merge.fetch是將遠端**拉下來,merge是合併進去。

取消上次修改:git reset .

GIT分布式版本控制系統

git是乙個開源的分布式版本控制系統,用以有效 高速的處理從很小到非常大的專案版本管理。分布式相比於集中式的最大區別在於開發者可以提交到本地,每個開發者通過轉殖 git clone 在本地機器上拷貝乙個完整的git倉庫。專案使用git的一般情景 1 從伺服器上轉殖完整的git倉庫或者建立本地的git...

git分布式版本控制系統

1.git三個工作區 2.使用前配置3.git命令 本地 git init 建立版本庫 在當前資料夾下多出乙個.git檔案 git add 新增到暫存區 git commit m 版本說明 新增到歷史區 git log 檢視日誌 git reflog 檢視所有日誌 git diff 比較工作區和暫存...

GIT分布式版本控制系統

git是一款免費 開源的分布式版本控制系統,用於敏捷高效地處理任何或小或大的專案。1 git的讀音為 g t git是乙個開源的分布式版本控制系統,可以有效 高速的處理從很小到非常大的專案版本管理。2 git 是 linus torvalds 為了幫助管理 linux 核心開發而開發的乙個開放原始碼...