前言
Git和其它版本控制系統如SVN的不同之處就是有暫存區的概念。Git本地有四個工作區域:工作目錄(working Directory)、暫存區(Stage/Index)、資源庫(Repository或Git Directory)、git倉庫(Remote Directory)。
Workspace:工作區,就是本地電腦能夠看到的文件夾,本地放代碼的地方
Index/Stage:暫存區,用於臨時存放你的改動,事實上它只是一個文件,保存即將提交到文件列表信息
Respository:倉庫區(也稱爲版本庫),就是安全存放數據的位置,這裏面有你提交到所有版本的數據。其中HEAD指向最新放入倉庫的版本
Remote:遠程倉庫,託管代碼的服務器,可以簡單的認爲是你項目組中的一臺電腦用於遠程數據交互。
1、創建版本
# 在當前目錄新建一個Git代碼庫
git init
# 新建一個目錄,將其初始化爲Git代碼庫
git init [project-name]
# 下載一個項目和它的整個代碼歷史
git clone [url]
2、查看文件狀態
#查看指定文件狀態
git status [filename]
#查看所有文件狀態
git status
3、將文件從工作區添加到暫存區
#添加到指定文件到暫存區
git add [file1][file2]...
#添加指定目錄到暫存區,包括子目錄
git add [dir]
4、將暫存區文件提交到資源庫(版本庫)
#將暫存區文件提交到資源庫(版本庫)
git commit -m "本次提交說明"
5、查看提交歷史記錄
#命令顯示從最近到最遠的提交日誌
git log
#精簡log信息
git log --pretty=oneline
6、git commit後版本回退
回退時,Git需要知道當前是哪個版本,在Git中,用HEAD
表示當前版本,一個版本就是HEAD^
,上上一個版本就是HEAD^^
,當然往上100個版本寫100個^比較容易數不過來,所以寫成HEAD~100。
回退時可以使用git reset
命令:
$ git reset --hard HEAD^
還有一種方式:
git reset --hard commitId
這種方式需要知道commit id,這種方式就是將指針指向指定版本,也就是說可以將版本切換到任意一個版本時期。
但是,回退版本會導致git log中信息被刪除,如果需要找到已經被回退的版本,可以使用
$ git reflog
git reflog
用來記錄你的每一次命令
7、git add後從暫存區回退到工作區
#移除不必要的添加到暫存區的文件
git reset HEAD 文件名
8、在工作區修改後,回退修改
git checkout 文件名
9、git commit後,從git 回退到暫存區
#去掉上一次的提交(變成add之後,commit之前狀態)
git reset --soft HEAD^
10、遠程操作
# 取回遠程倉庫的變化,並與本地分支合併
git pull
# 上傳本地指定分支到遠程倉庫
git push
11、比較修改
#未git add 時和暫存區的比較
git diff file
#查看工作區和版本庫裏面最新版本的區別
git diff HEAD --
12、刪除文件
#刪除工作空間文件
#rm file
#恢復剛剛刪除的工作空間文件,未git add
git checkout -- file
#確實要從版本庫中刪除該文件
git rm file
13、分支管理
#創建分支
git branch 分支名
#切換分支
git checkout dev
#創建分支並切換分支
git checkout -b 分支名
#查看當前分支
git branch
#合併分支
git merge 需要合併到當期分支的分支名
#刪除分支
git branch -d 分支名
14、遠程操作
# 取回遠程倉庫的變化,並與本地分支合併
git pull
# 上傳本地指定分支到遠程倉庫
git push
參考資料: