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文件等 卻都是無能為力...