《Git學習指南》學習筆記(一)

2022-08-22 04:27:15 字數 2640 閱讀 6895

在linux下,git的安裝很簡單。以我的系統deepin/ubuntu為例,只需在終端敲入sudo apt-get install git即可。其他linux發行版可嘗試yum install git-core

初學時,建議使用乙個新建立的目錄來進行測試。

版本庫可以儲存專案及其歷時資料。我們可以用init來進行建立。

首先我們新建乙個空目錄gittest,然後新建兩個文字檔案,如a.txt和b.txt,內容任意,然後使用init來建立版本庫:

觀察資料夾,可以發現已經多了乙個名為.git的隱藏檔案:

這樣就說明你的版本庫已經建立成功。

剛剛僅僅是把版本庫建立了,那我的兩個檔案如何新增到版本庫中去呢?此時需要使用兩個命令:addcommit,每次提交git都會為其生成乙個雜湊值,這也是git對所有版本進行區分的乙個鍵值。

如圖,已經成功提交了剛剛建立的a和b兩個檔案。

git如何檢查版本庫檔案的狀態呢?

首先我們來把a.txt刪除,然後新建乙個c.txt,最後檢視狀態:

status命令用於顯示自上次提交以來所有發生的修改。c.txt檔案被標為未跟蹤狀態,是因為它還沒有被add進版本庫。

使用diff命令可以顯示每個被修改的行,但在終端上看可能會顯得比較晦澀難懂:

因此還是建議使用圖形化工具如kdiff3來檢視。這裡請大家自行查詢。

我們修改b.txt檔案內容,希望將更改加入到版本庫中,對希望刪除的檔案使用rm命令,操作之後同樣也需要執行add命令,然後檢視狀態:

最後,別忘了commit

既然我們已經修改過檔案了,那如何檢視歷史記錄呢?

log命令即可按照時間降序來顯示歷史記錄:

為了模擬團隊開發協作,我們另新建乙個資料夾,代表第二位開發者在自己的pc上進行團隊開發:

此時,gittest2中已經有乙份和gittest專案一模一樣的拷貝。

現在,我們假設開發者a對gittest專案進行了修改:

此時,開發者b也對專案進行了修改:

這樣,兩位開發者都在各自的pc上對專案進行了修改、提交。由於開發者b轉殖的a的專案,因此b的專案中儲存了原版本庫的路徑。接下來,我們使用pull命令將開發者b轉殖的專案進行同步,取回最新的提交:

可以發現,開發者b的專案中的b.txt檔案得到了同步,和a的一模一樣了。這個過程中,b使用pull從原版本庫中取回了新的修改,將它們與轉殖體中的本地修改進行對比,然後在工作區中合併了兩邊的修改,建立了一次新的提交,這就叫合併(merge)

在進行pull時,預設是從原版本庫中進行獲取。當指定引數時,便能實現從任意版本庫中獲取。

現在,我們將轉殖體中的修改pull到原版本庫:

push命令可以將提交傳送給其他版本庫。但是,push命令只適用於那些沒有開發者在上面開展具體工作的版本庫。最好是建立乙個不帶工作區的版本庫,稱為裸版本庫(bare reppository)

裸版本庫就是充當開發者們傳遞提交的匯聚點,以便其他人可以從中拉回他們所做的修改。

修改~/gittest/b.txt檔案,然後進行提交,最後push操作:

現在,clone倉庫也想獲取相應的修改,執行以下命令即可:

《Git學習指南》學習筆記(三)

提交一般分未兩步 add和commit。add將修改存入到索引 index 或叫暫存區 staging area 中。status命令會出現三種可能的狀態 對於那些不希望被提交的修改,可以使用以下幾種方法 gitignore只會影響它所在目錄下的所有檔案。gitignore也只會影響當前還未交由gi...

《Git學習指南》學習筆記(二)

每次提交都會生成乙個40位的雜湊值。只要知道雜湊值,我們就可以恢復到該次提交,這個操作也被稱之為檢出 checkout 操作。git會儲存每個檔案原有的訪問許可權,但修改時間會隨著checkout重置為當前時間。這是因為很多構建工具重新生成專案的動作都以檔案的修改時間來觸發,一旦checkout,工...

Spring MVC 學習指南學習,學習筆記。

前言 spring 是 ioc 編制中的一種輕量級實行。ioc程式設計可以檢視如下資料 控制反轉 1158025?fr aladdin fromid 4853 fromtitle ioc 1.init param引數的使用 2.簡化檢視路徑,可在xml中配置viewresolver,這樣可以簡化書寫...