·版本控制系統(tǒng)
版本控制系統(tǒng)即VCS(version control system)是一種記錄若干文件的修訂記錄的系統(tǒng),它幫助我們查閱或回到某個歷史版本。
-“人肉”VCS
-LVCS本地
·舉例
-RCS(Revision Control System)
無法多人協(xié)同開發(fā)
-CVCS集中式
·舉例
-CVS(Concurrent Versions System)
-SVN(Subversion)
-Perforce
中央服務(wù)器發(fā)生故障
-DVCS分布式
·舉例
-Git
-Mercurial
有了VCS之后
·可以回退到某個歷史版本
·查看某個歷史版本
·對比兩個版本的差異
·分支模型
-分支:從目標(biāo)倉庫獲得一份項目拷貝,每條拷貝都有和原倉庫功能一樣的開發(fā)線。
-分支模型(branching model)/工作流(workflow)
一個圍繞項目【開發(fā)/部署/測試】等工作流程的分支操作(創(chuàng)建,合并等)規(guī)范集合
產(chǎn)品級的分支模型
常駐分支
·development
-從master創(chuàng)建
·production(master)
-默認(rèn)分支
活動分支
·feature
-從development創(chuàng)建
·hotfix:如hotfix-36
-從master創(chuàng)建
·release:如release-110
-從development分支創(chuàng)建
·Git
-Git介紹
·git是一個免費開源的分布式版本控制系統(tǒng)(DVCS)
·git是一個基于內(nèi)容尋址的存儲系統(tǒng)
優(yōu)勢
·快!
·完全的分布式
·輕量級的分支操作
·Git已經(jīng)成為現(xiàn)實意義上的標(biāo)準(zhǔn)
·社區(qū)成熟活躍
安裝:Windows: msysgit?
-Git命令詳解
git config? 配置git
·用戶配置
-git config --global user.name "coore"
-git config --global user.email "403276838@qq.com"
·配置級別
-? --local[默認(rèn),高優(yōu)先級]:只影響本倉庫 (.git/config)
-? --global[中優(yōu)先級]:影響到所有當(dāng)前用戶的git倉庫(~/.gitconfig)
- --system[低優(yōu)先級]:影響到全系統(tǒng)的git倉庫(/etc/gitconfig)
git init 初始化倉庫
·git init [path]
·git init [path]? --bare
git status:對狀態(tài)的跟蹤
- 未跟蹤<->跟蹤
- 工作目錄<->暫存區(qū)
- 暫存區(qū)<->最新提交
git add 添加文件內(nèi)容到暫存區(qū)(同時文件被跟蹤)
gitignore 忽略文件
·在添加時忽略匹配的文件
·僅作用于未追蹤的文件
git-rm從暫存區(qū)刪除
·git rm --cached : 僅從暫存區(qū)刪除
·git rm:從暫存區(qū)與工作目錄刪除
·git rm $(git ls-fils --deleted):刪除所有被跟蹤,但是在工作目錄被刪除的文件
git-commit根據(jù)暫存區(qū)內(nèi)容創(chuàng)建一個提交記錄
git log顯示提交歷史信息
git中的alias命令
·git config alias.shortname <fullcommand>
git diff 顯示不同版本差異
·git diff:-工作目錄與暫存區(qū)的差異
·git diff -cached [<reference>] - 暫存區(qū)與某次提交差異,默認(rèn)為HEAD
·git diff <reference> - 工作目錄與某次提交的差異
撤銷本地修改git checkout --<file> 將文件內(nèi)容從暫存區(qū)復(fù)制到工作目錄
撤銷暫存區(qū)內(nèi)容git reset HEAD <file> 將文件內(nèi)容從上次提交復(fù)制到暫存區(qū)
撤銷全部改動git checkout HEAD --<file>將內(nèi)容從上次提交復(fù)制到工作目錄
分支操作
git branch 分支的增刪查改都靠它
·git branch <branchName> 創(chuàng)建一個分支
·git branch -d <branchName> 刪除指定的分支
·git branch -v 顯示現(xiàn)在所有的分支信息
git checkout 通過移動HEAD檢出版本,可用于分支切換
·git checkout <branchName> 指針直接指向目標(biāo)分支
·git checkout -b <branchName> 直接創(chuàng)建一個分支然后切換到它
·git checkout <reference> 引用到任何引用對象上
git reset 將當(dāng)前分支回退到歷史某個版本
·git reset --mixed <commit>默認(rèn)
·git reset --soft <commit>
·git reset --hard <commit>
使用捷徑
·A^:A上的父提交
·A~n:在A之前的第n次提交
git stash 保存目前的工作目錄和暫存區(qū)狀態(tài),并返回到干凈的工作空間
git merge合并分支
git rebase修改提交歷史基線,俗稱“變基”
git rebase --onto
勿在共有分支使用rebase
git tag 對某個提交設(shè)置一個不變的別名
遠(yuǎn)程操作
Git支持本地協(xié)議,所以我們可以初始化一個本地的遠(yuǎn)程服務(wù)器
git init ~/git-server --bare