Git學習總結1

2021-09-01 07:12:36 字數 3070 閱讀 8468

git是乙個可擴充套件的分布式版本控制系統,它包含豐富的命令集,對內部系統提供了高階操作和完全訪問。

1、使用git管理個人文件

git善於儲存文字文件,使用git對現有文件進行版本控制,首先要基於現有文件建立專案倉庫。假設本文件位於~/evawang/workspace目錄下,下面以bash變數$work代替該目錄,首先初始化git倉庫:

echo $work

work=~/evawang/workspace

cd $work

git init

git會作出以下回應:

initialized empty git respository in @work/.git/

上述操作的結果是在$work目錄下建立了乙個[color=red].git隱藏目錄[/color],它就是所謂的[color=red]git倉庫[/color],不過它現在還是空的,另外[color=darkblue]$work目錄[/color]也不再是普通的文件目錄了,它稱為[color=darkblue]工作樹[/color]。

git向倉庫中新增文件時,需要經過一番處理,生成git倉庫所能接受的資料格式,該過程稱為「take a snapshot」,可採用下面的命令實現:

cd $work

git add .

生成的快照被存放到乙個臨時的儲存區域中,git稱該區域為[color=red]索引[/color]。使用git commit命令可以將索引提交到倉庫中,該過程稱為[color=red]提交[/color],每一次的提交都意味著版本的更新。

git commit

執行git commit操作,git會自動呼叫系統預設的文字編輯器,要求你輸入版本更新說明並儲存。對於簡單的版本更新資訊,可以使用git commit 的"-m"選項,如下:

git commit -m "版本更新資訊"

[color=red]建立git倉庫的一些細節[/color]

first:在使用git之前,需要對git來個自我介紹,因為它要求隊員在提交資料時承擔一定的責任!向git自我介紹,使用一下命令:

git config --global user.name "your name"

git config --global usr.email emailadress

second:在生成快照時,工作樹中有一些文件是你不希望接受git管理的,譬如編譯時生成的中間檔案。為解決此類問題,[color=red]git提供了文件忽略機制[/color],可以將工作樹中你希望接受git管理的文件資訊寫到同乙個目錄下的[color=red].gitignore[/color]檔案中。例如工作樹中的middle目錄不需要git管理,需要如下操作即可:

cd $work

echo "middle" > .gitignore

git add .

git倉庫就是那個.git目錄,存放的是我們所提交的文件索引內容,git可以根據文件索引內容對其所管理的文件心境內容追蹤,從而實現文件版本控制。

cp -r $work/.git /tmp/m2doc.git

cd /tmp

git clone m2doc.git m2doc-copy //使用git-clone命令從m2doc.git中生成m2doc-copy目錄

這就意味著只要我們擁有倉庫,就可以生成工作樹,該工作樹又包括乙個倉庫,即:m2doc-copy/.git

ex:將修改了的file1.txt file2.txt檔案新增到索引中

git add file1.txt file2.txt

執行git-commit操作將索引新增到倉庫中,如果你忘記了對工作樹中的哪些文件進行更新,git add命令能夠判斷出當前目錄及子目錄下使用者所新增的新的文件,git-commit命令的-a選項可將所有被修改的文件或刪除的文件的當前狀態提交到倉庫中。[color=red]如果只是修改或者刪除已被git管理的文件,就沒有必要使用git-add命令了[/color]。

檢視歷史版本:

git log //檢視使用git-commit向倉庫提交新版本時所屬的版本更新資訊

git log --stat --summary //檢視每一次版本大致變動情況

如果我們將專案的版本號作為git-show命令的引數,可以檢視該次專案版本的更新細節

git show editionnum

除了使用完整的版本號檢視版本更新資訊,還可以使用以下方式:

git show part_of_editionnum  //一般只使用版本號的前幾個字元進行查詢

git show head //顯示當前分支的最新版本的更新資訊

git show head^ //檢視head的父版本的更新資訊

你也可以對專案版本號進行自定義,然後就利用自定義的版本號檢視對應的版本更新資訊

git tag v0.1 part_of_editionnum  //製造了乙個tag物件,在進行專案對外發布時比較有用

git show

撤銷與恢復

git-reset命令即是將當前版本定位到之前提交的任何乙個版本。

git-reset命令有三個選項:--mixed --soft --hard,一般只使用前兩個選項。

--mixed 是git-reset的預設選項,作用:重置索引內容,將其定位到指定的專案版本,而不改變你的工作樹的內容,只是提示你有哪些檔案還未更新。

--soft 不觸動索引的位置,也不改變工作樹的內容,但會要求他們處於乙個良好的次序之內,該選項會保留你在工作樹中所有更新並使之處於提交狀態。

欲檢視git-reset命令對工作樹的影響,可使用git-status命令。

使用git幫助文件的方法,如果想檢視git add命令,man git-add就好了!

先總結這麼多吧!

Git學習總結(1) Git的簡單使用

注意git config命令的 global引數,用了這個引數,表示你這台機器上所有的git倉庫都會使用這個配置,當然也可以對某個倉庫指定不同的使用者名稱和email位址。git config global user.name your name git config global user.ema...

git學習總結系列(1) 基本用法

廖雪峰的官方 注 本文中的主要內容都是基於linux環境進行操作的,使用的git版本為最新的2.10.2版本。文中命令示例中方括號裡面的內容都表示是可選引數。無論是分布式還是集中式版本控制系統,都只能對純文字檔案進行版本控制,而對二進位制檔案 如ms word ms excel文件等 卻都是無能為力...

git學習總結系列(1) 基本用法

廖雪峰的官方 注 本文中的主要內容都是基於linux環境進行操作的,使用的git版本為最新的2.10.2版本。文中命令示例中方括號裡面的內容都表示是可選引數。無論是分布式還是集中式版本控制系統,都只能對純文字檔案進行版本控制,而對二進位制檔案 如ms word ms excel文件等 卻都是無能為力...