版本管理

·版本控制系統(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

git push提交本地歷史到遠(yuǎn)程

git remote遠(yuǎn)程倉庫相關(guān)配置操作

git fetch 獲取遠(yuǎn)程倉庫的提交歷史

git clone 克隆一個遠(yuǎn)程倉庫作為本地倉庫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容