git了解與版本回退

2021-09-08 12:25:04 字數 2013 閱讀 8134

一、學習與了解

cvs及svn都是集中式的版本控制系統,而git是分布式版本控制系統

先說集中式版本控制系統,版本庫是集中存放在**伺服器的,而幹活的時候,用的都是自己的電腦,所以要先從**伺服器取得最新的版本,然後開始幹活,幹完活了,再把自己的活推送給**伺服器。**伺服器就好比是乙個圖書館,你要改一本書,必須先從圖書館借出來,然後回到家自己改,改完了,再放回圖書館。集中式版本控制系統最大的毛病就是必須聯網才能工作,如果在區域網內還好,頻寬夠大,速度夠快,可如果在網際網路上,遇到網速慢的話,可能提交乙個10m的檔案就需要5分鐘,這還不得把人給憋死啊。

那分布式版本控制系統與集中式版本控制系統有何不同呢?首先,分布式版本控制系統根本沒有「**伺服器」,每個人的電腦上都是乙個完整的版本庫,這樣,你工作的時候,就不需要聯網了,因為版本庫就在你自己的電腦上。既然每個人電腦上都有乙個完整的版本庫,那多個人如何協作呢?比方說你在自己電腦上改了檔案a,你的同事也在他的電腦上改了檔案a,這時,你們倆之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。

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

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

二、基本操作-本地倉庫!!!

git分為三個工作區、暫存區(本地倉庫)以及遠端分支

1、版本回退

git add 就是講快取區**提交到本地倉庫

git commit 就是將資訊提交到遠端**庫

git status 檢視當前本地倉庫與最新的git遠端的差異資訊

git log 需要注意的是本地的操作記錄

git pull就是將資料拉取到本地

git fetch 就是獲取,重新整理最新的狀態後在git status就能看到當前的快取區與遠端分支上的差異所在

git checkout -- 檔名(取決於modified後面的顯示)對於修改內容的回退

如果不加 -- 後面加分支名字就是切換分支

同樣的如果修改已經提交到了暫存區,我們想回退的話需要(通過git status 就能提示這條命令)

git reset head readme.txt
從sourcetree開啟命令列模式之後,通過 git log 此命令可以檢視git的歷史版本提交記錄,如果嫌輸出資訊太多,看得眼花繚亂的,可以試試加上--pretty=oneline引數

git diff head -- readme.txt命令可以檢視工作區和版本庫裡面最新版本的區別,跟sourcetree上看一樣

版本的還原操作

如果想再還原回去

Git版本回退

1 檢視檔案修改歷史 git log 返回的是commit後的操作記錄 git log pretty oneline 也可以使用這個命令格式化日誌輸出 2 版本回退 git reset hard head 回退到上乙個版本 git reset hard head 100 會退到第100個版本,例如現...

git版本回退

先說今天遇到的問題,看到乙個config.php的配置檔案一直在修改的狀態下,但是和遠端的config.php是不一致的,我不需要提交它,但是看它在 modified的狀態下,很不爽,想刪除它,git rm config.php,然後git push了下,結果不僅把本地的config.php乾掉了,...

git版本回退

把修改後的版本通過命令提交到版本庫 第一步 git add 檔名 字尾 第二步 git commit m commit id 但是有時候想回去怎麼辦呢?當然萬能的git給我們提供了方法的。我們先檢視一下最近到最遠的提交紀錄操作如下 在命令航輸入 git log 會顯示提交日誌,但是嫌輸出過多怎麼辦,...