Git版本控制理解(一)

2021-08-17 15:20:42 字數 2038 閱讀 4347

一、集中式版本控制系統與分布式的區別

集中式:版本庫集中存放在**伺服器(即存放版本庫的伺服器),必須先從**伺服器取得最新版本的,處理完後再推送到**伺服器(如svn),缺點是必須聯網。

分布式:沒有所謂的「**伺服器」,每乙個人的電腦就是乙個完整的版本庫,因此工作的時候不需要聯網。協作的時候只需要把各自的修改推送給對方。和集中式相比,其安全性更高,由於每個人的電腦都有乙個完整的版本庫,若某人的電腦出現問題,可在他人的電腦複製乙份即可繼續工作,而集中式版本控制的**伺服器若出現問題,所有人都無法繼續幹活了。且開發者之間的衝突更容易得到解決。(實際使用時,通常也會有一台充當「**伺服器」的電腦,僅用來方便交換修改)

git版本控制的優勢:1.不需聯網;2.強大的分支管理;

二、git的常用命令

git init:把當前目錄變成git可以管理的倉庫;

git add (filename):把檔案新增到git倉庫中;

git commit -m 「***」:告訴git,將檔案提交到倉庫中,-m後面輸入的是本次提交內容的說明,方便找到改動的記錄;

git status:時刻掌握倉庫的狀態,是否修改等;

git diff:檢視不同的地方,修改了什麼;

git log:顯示最近到最遠的提交日誌;

git log –pretty=oneline :顯示版本號(conmmit id)+提交說明;

git reset –hard head^:版本回退更改操作;(head:當前版本,head^:上一版本,head^^:上上乙個版本。使用版本號也可以進行回退。)

git reflog:記錄每一次的命令操作。

三、git工作區與暫存區的理解

工作區:就是工作的乙個區域(目錄)。

版本庫:工作區中有乙個隱藏目錄.git,稱為git的版本庫,裡面存放了很多東西,包括最重要的乙個概念:暫存區stage(或 index),同時使用git時會自動建立的第乙個分支master,以及指向master的指標head。

暫存區:可以理解為,需要提交的檔案修改的存放區。

理解往git版本庫新增檔案時的流程:

1.git add:實際上就是把檔案以及修改新增到暫存區中;

2.git commit:實際上就是把暫存區的所有內容提交到當前分支上;

理解點:git跟蹤並管理的是修改,而不是檔案。故每次修改,若不add到暫存區中,那麼就不會加入到commit中。

四、git撤銷修改以及刪除檔案

git checkout –file:把某檔名檔案在工作區的修改全部撤銷掉;

注意點,這裡的撤銷修改有兩種情況,分別如下:

1.file檔案自修改後還未放到暫存區中,即是撤銷後讓其回到和版本庫一樣的狀態;

2.file檔案已經新增到暫存區後,又進行了修改操作,即是撤銷後要回到暫存區的狀態。

git reset head file:可以把暫存區的修改撤銷掉,重新放回工作區中;

git reset:既可用來回退版本,也可以把暫存區的修改回退到工作區。

總結

場景1:當你改亂了工作區的某個檔案時,向直接捨棄工作的修改時,使用git checkout –file命令。

場景2:當你改亂了工作區的某個檔案的內容,且還新增進了暫存區中,此時想捨棄修改,分兩步走,先用命令git reset head file,回到場景1;再同場景1的操作進行。

場景3:已經提交了不合適的修改到版本庫,向撤銷本次修改,直接進行版本回退即可。(前提是沒推送到遠端庫中)

git rm file:刪除工作區的檔案;

1.從版本庫中刪除該檔案:git rm file命令刪除,並且用git commit來提交;

2.將工作區誤刪的檔案恢復:git checkout –file(用版本庫里的版本替換工作區的版本)

深度理解git版本控制

什麼是git git是乙個c語言編寫分布式版本控制系統。不需要 伺服器,不需要聯網 對應的是 集中式的版本控制系統是需要 伺服器的,版本庫是放在 伺服器的,而分布式的版本控制的優點就是沒有 伺服器,每個電腦都是乙個完整的版本庫。這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上 類似系...

git版本控制

1.git 是乙個開源的分布式版本控制系統,可以有效 高速的處理從很小到非常大的專案版本 管理。2.git配置管理 一般,有乙個 集中庫,包含4個分支 qa才能merge production 發布生產,出現生產問題,轉hotfix 研發經理 hotfix 解決緊急生產問題,測試後轉producti...

版本控制 Git

git 是目前世界上最先進的開源的分布式版本控制系統 沒有之一 用於敏捷高效地處理任何或小或大的專案。git 是 linus torvalds 為了幫助管理 linux核心開發而開發的乙個開放原始碼的版本控制軟體。git 與常用的版本控制工具 cvs,subversion 等不同,它採用了分布式版本...