Git分布式版本控制系統

2021-08-19 15:20:36 字數 3007 閱讀 9699

git是目前世界上最先進的分布式版本控制系統.

高階大氣上檔次
- 什麼是cvs及svn集中式版本控制系統

a: 集中式版本控制系統,版本庫是集中存放在**伺服器的,在幹活的時候,用的都是自己的電腦,所以要先從**伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給**伺服器. **伺服器就好比是乙個圖書館,如果你要改這本書裡面的內容,那麼你必須先拿到這本書,改完以後在放回圖書館.

集中式版本控制系統必須 聯網 才能工作.

a: 分布式版本控制系統沒有』**伺服器』, 每個人的電腦上都可以有完本的版本庫, 在工作的時候,可以不需要聯網就能工作.

那多個人之間怎麼進行協作呢?比方說你在自己電腦上改了檔案a,你的同事也在她的電腦上改了檔案a,這個時候,你們倆之間只需要把各自的修改推送給對方,就可以互相看到對方的修改了.

a: 和集中式版本控制系統相比,分布式版本控制系統的安全性要高很多, 因為每個人電腦裡都有完整的版本庫, 某乙個人的電腦壞掉了不要緊, 隨便從其他人那裡拷貝乙個就可以了. 而集中式版本控制系統的重要伺服器要是除了 問題,所有人都沒有辦法幹活了.

b: 在實際使用分布式版本控制系統的時候, 其實很少在兩人之間的電腦上推送版本庫的修改,因為可能你們倆不在乙個區域網內, 兩台電腦互相訪問不了,也可以能今天你的同事病了, 他的電腦沒法開機, 因此, 分布式版本控制系統通常也有一台充當』**伺服器』的電腦, 單這個伺服器的作用僅僅是用來房補』交換』大家的修改, 沒有它大家也一樣幹活, 只是交換修改不方便而已.

a: 乙個最簡單的開發團隊,也許就兩三個人,他們共同完成乙個軟體的開發。每個人都在修改、新增、刪除著自己本地硬碟上的**,當他們把這些**彙總起來時,麻煩出現了。到底誰改了哪些檔案,具體是檔案裡的哪部分被改動過?a的修改會不會把b的修改覆蓋掉?彙總的工作變得很危險,需要非常小心,一旦出錯後果不堪設想。顯然此時,效率將會是無比的低下,如果某個地方出錯,可能整個彙總工作就要重來一遍。這只是兩三人的小團隊,如果是幾十人幾百人的大團隊呢?那將會是噩夢。如果這個團隊採用了版本控制。那麼版本控制軟體在每次提交的時候都會主動合併所有人的修改並解決可能發生的衝突。每個人手裡一直都是彙總好的**。當開發進行到一定階段,可以直接拿去測試,不需要再有額外的工作來浪費時間。另外,你還可以知道,程式的某個bug,是怎麼出現的(被誰以及什麼時候引入進來的)。

1.從github中轉殖出我的倉庫.

git clone

2.切換到的我的倉庫

cd myrepo

3.檢視分支狀態

git branch

4.同步分支與github

git pull origin master

5.建立新的分支

git checkout -b ldl

6.刪除分支

git checkout -d ldl 刪除本地ldl分支

git push origin --delete ldl 刪除遠端倉庫ldl分支

7.切換到ldl分支

git checkout ldl

8.提交修改到緩衝區

git add readme.md或 . .代表全部檔案

9.確認提交到工作區並寫明提交說明

git commit -m '修改了readme裡內容'

10.檢視工作樹狀態(修改了檔案就能看見)

git status

11.將當前分支推送到github的ldl分支上,如果在github上不存在ldl分支,則建立ldl分支

git push origin ldl

12.如果不成功,那麼設定下列全域性變數:

git config --global user.email '[email protected]'

git config --global user.name 'bowillkin'

13.檢視本地兩個分支有何不同

git diff ldl master

14.檢視版本日誌(做提交日誌記錄是很重要的)

git log

git log --pretty=oneline

git reflog :記錄了歷史命令

15.回滾版本

git reset --hard 90va152fce 回到到這個版本

git reset --hard head^ 回退乙個版本

git reset --hard head^^ 回退兩個版本

git reset --hard head~100 回退100個版本

16.拉取遠端倉庫

git pull origin master

17.強制上傳本地倉庫

git push -f origin ldl

18.建立秘鑰和公鑰

ssh-keygen -t rsa -c '[email protected]'

為了讓兩個linux機器之間使用ssh不需要使用者名稱和密碼。所以採用了數字簽名rsa或者dsa來完成這個操作。

ssh-keygen -t [rsa|dsa],將會生成金鑰檔案和私鑰檔案

將 .pub 檔案複製到b機器的 .ssh 目錄, 並 cat id_dsa.pub >> ~/.ssh/authorized_keys

大功告成,從a機器登入b機器的目標賬戶,不再需要密碼了;(直接執行 #ssh 192。168。20。60 )

19.與github伺服器認真公鑰

ssh -t [email protected]

20.在master分支進行合併ldl分支操作

git merge ldl

21.檢視master分支與ldl分支不同的地方

git diff merge ldld

22.設定標籤(概念與分支類似)

git tag -a v1.0 -m '測試'

23.檢視標籤

git tag

24.上傳標籤到遠端倉庫

git push origin v1.0

25.換粗修改的**

git stash

26.檢視快取

git stash list

27.還原快取

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 核心開發而開發的乙個開放原始碼...