對Git的總結

2021-07-13 20:34:41 字數 2374 閱讀 1542

git 與常用的版本控制工具 cvs、subversion 等不同,它採用了分布式版本庫的方式,不必伺服器端軟體支援,使源**的發布和交流極其方便。

1.1、git是分布式而非集中式版本控制

乙個集中式的版本控制系統如上圖所示。其特點就是有乙個單一的集中管理的伺服器,儲存所有檔案的修訂版本,而協同工作的人們都通過客戶端連到這台伺服器,取出最新的檔案或者提交更新。這種做法的好處是:每個人都可以在一定程度上看到專案中的其他人正在做些什麼。而管理員也可以輕鬆掌控每個開發者的許可權,並且管理乙個 cvcs 要遠比在各個客戶端上維護本地資料庫來得輕鬆容易。這種做法最顯著的缺點是:對於**伺服器的過度依賴,如果伺服器宕機,那麼大家將無法協同工作。甚至,如果**伺服器的磁碟發生故障,那還會有丟失資料的風險,最壞的情況可能會丟失整個專案所有的歷史更改記錄,而被客戶端提取出來的某些快照資料除外。

乙個分布式的版本控制系統如上圖所示。其特點是客戶端並不是只提取最近版本的檔案快照,而是把原始的**倉庫完整地映象下來。這樣就算任何一處協同工作用的伺服器發生故障,事後都可以用任何乙個映象出來的本地倉庫來恢復。每次提取操作實際上都是一次對**倉庫的完整備份。甚至,許多這類系統可以指定和若干不同的遠端**倉庫進行互動。這樣,你就可以在同乙個專案中分別和不同的工作小組的人協作,你可以設定分層式的工作流,這在集中式的版本控制系統中是無法做到的。

1.2、git儲存更新時的檔案快照而非差異

git是乙個分布式版本控制系統。儲存更新時的檔案快照而非差異。git 與其他的版本控制系統的主要差別還在於:git 只關心檔案資料的整體是否發生變化,而大多數其他系統則只關心檔案內容的具體差異。

git 採用這樣的設計帶來了這些好處:

已暫存(staged),表示對這個被修改的檔案做了快照,並把快照放在下次提交時要儲存的清單中了。

已提交(commited),表示該檔案已經被安全地儲存在本地資料庫中了。

所以基本的git工作流程一般是這樣的:

git管理下的檔案在這三種狀態下切換情況以及對應的git命令:

當我們從某個地方clone一分**後,通常這是的工作倉庫是clean的。所有的**都是commited狀態。下面我們解釋一下個各狀態之間的轉換方式:

此時我切換分支到 anywhere上,那麼我們再次檢視一下head檔案的內容:

配置一些使用者名稱和郵箱等設定,在此忽略。

2.1、設定忽略檔案

1)設定專案的忽略檔案:

被忽略的檔案發生任何變化,都不會再git中顯示出來。也就是git不管這些檔案的內容變化。

2.4、撤銷修改

撤銷提交

2.5、分支

2.6、解決衝突

衝突很少時,直接編輯衝突的檔案然後提交即可。

衝突比較複雜時,用 git mergetool 呼叫之前設定的merge工具來處理。

1、自動生成 backup,base,local和remote四個檔案

2、呼叫設定好的merge工具

3、解決之後,關閉工具,backup,base,local和remote四個輔助檔案會自動刪除,但會同時生成乙個 .orig 的檔案來儲存衝突前的現場。需手動刪除這個檔案

4、提交

2.7、標籤

2.8、檢視狀態

2.9、其它

1.1、初始化

1.1.1、轉殖版本庫和新增遠端版本庫

1)當已經有乙個遠端版本庫,只需要在本地轉殖乙份:

2)當在本地建立乙個工作目錄,想把這個目錄用git管理,並初始化到遠端版本庫,可以在遠端伺服器上建立乙個目錄,並把url記錄下來。在本地進入工作目錄,然後 執行:

1.2、分支

1.3、從遠端倉庫獲取

推薦用下列方式從遠端獲取:

對git的認識

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

對git的認識。。。

git是乙個開源的分布式版本控制系統,用以有效 高速的處理從很小到非常大的專案版本管理。2 git 是 linus torvalds 為了幫助管理 linux 核心開發而開發的乙個開放原始碼的版本控制軟體。torvalds 開始著手開發 git 是為了作為一種過渡方案來替代 bitkeeper,後者...

對git的認識

下面是我對git的認識,也查閱了很多的資料 egit最大的好處是整合在eclipse裡面,對於 修改後提交很方便,常使用的部分是 1 簡單的commit,pull,push。2 git repository 看資源庫檢視 包括新建分支,切分支,合併分支 3 工程reset hard 強制覆蓋本地版本...