git深刻研究

1、簡介:
git是一款開源的分佈式版本控制工具
在世界上全部的分佈式版本控制工具中,git是最快、最簡單、最流行的
git的起源:做者是Linux之父:Linux Benedict Torvalds
當初開發git僅僅是爲了輔助Linux內核的開發(管理源代碼)
git的現狀:在國外已經很是普及,國內並未普及(正在慢慢普及)
愈來愈多的開源項目已經轉移到gitgit

2、與svn對比數據庫

GIT和SVN的簡單對比
速度在不少狀況下,git的速度遠遠比SVN快
結構SVN是集中式管理,GIT是分佈式管理
分佈式和集中式的最大區別在於:在分佈式下 1.開發者能夠本地提交 2.每一個開發者機器上都有一個服務器的數據庫
其餘SVN使用分支比較笨拙,git能夠輕鬆擁有無限個分支
SVN必須聯網才能正常工做,git支持本地版本控制工做
舊版本的SVN會在每個目錄置放一個.SVN,git只會在根目錄擁有一個.git服務器

3、git工做原理分佈式

 

工做庫(Working Directory):倉庫文件夾裏除.git目錄之外的內容
版本庫(history Repository):.git目錄,用於存儲記錄版本信息
暫存區(staging area)
分支(master):git自動建立的第一個分支
HEAD指針:用於指向當前分支svn

代碼提交:工具

git add:把文件修改添加到暫存區
git commit -a: 把工做區的全部內容提交到當前的分支版本控制

git commit -m 把暫存區的全部內容提交到當前的分支指針

代碼撤銷:對象

git reset file從本地倉庫到暫存區
git checkout file從暫存區到工做區
git checkout HEAD file從本地倉庫到工做區開發

查看文件發生的變化:
git diff 不加參數即默認比較工做區與暫存區
git diff --staged比較工做區和暫存區
git diff HAAD(git diff --stat HEAD) 比較工做區 和 本地倉庫

移除及重命名文件
git rm file
git rm --cached file
git mv file1 file2
暫存工做區:
git stash
git stash pop
圖解commit對象:
git cat-file -t HEAD
git cat-file -p HEAD
理解tree-ish表達式
ls -a
tree directory
git log
git rev -parse HEAD
git rev -parse HEAD~
建立及刪除分支
git branch
切換分支
git checkout -b branchName
git cat .git/HEAD
git branch -d branchName 刪除分支
合併分支
git checkout -b branchName

git merge branchName
git log
fast forword

git pull

後續更新中……

相關文章
相關標籤/搜索