Git是分布式版本控制系統(tǒng),,我們常用的版本控制工具還有SVN。這里就得區(qū)分下什么是分布式版本控制系統(tǒng),,什么是集中化的版本控制系統(tǒng),。 集中化的版本控制系統(tǒng) 集中化的版本控制系統(tǒng)( Centralized Version Control Systems,簡(jiǎn)稱 CVCS ),。這類系統(tǒng),,諸如 CVS,Subversion 以及 Perforce 等,,都有一個(gè)單一的集中管理的服務(wù)器,,保存所有文件的修訂版本,而協(xié)同工作的人們都通過(guò)客戶端連到這臺(tái)服務(wù)器,,取出最新的文件或者提交更新,。 優(yōu)點(diǎn): 1. 每個(gè)人可以看到別人做了什么 2. 管理員管理權(quán)限也比較簡(jiǎn)單 缺點(diǎn): 依賴中央服務(wù)器,存在單點(diǎn)故障的風(fēng)險(xiǎn),。 1. 中央服務(wù)器宕機(jī)后,,都無(wú)法協(xié)同工作 2. 如果中央服務(wù)器的文件損毀,又沒(méi)有備份時(shí),,丟失的數(shù)據(jù)無(wú)法找回
分布式版本控制系統(tǒng)
分布式版本控制系統(tǒng)( Distributed Version Control System,,簡(jiǎn)稱 DVCS ),。在這類系統(tǒng)中,像 Git,,Mercurial,,Bazaar 以及 Darcs 等,客戶端并不只提取最新版本的文件快照,,而是把代碼倉(cāng)庫(kù)完整地鏡像下來(lái),。這么一來(lái),任何一處協(xié)同工作用的服務(wù)器發(fā)生故障,,事后都可以用任何一個(gè)鏡像出來(lái) 的本地倉(cāng)庫(kù)恢復(fù),。因?yàn)槊恳淮蔚奶崛〔僮鳎瑢?shí)際上都是一次對(duì)代碼倉(cāng)庫(kù)的完整備份,。 優(yōu)點(diǎn): PS:允許支持上千個(gè)并行開(kāi)發(fā)的分支 PS:特別在打分支和打Tag時(shí)候 PS:本地倉(cāng)庫(kù) 缺點(diǎn):
分支
Git最關(guān)鍵地方即是分支,,分支意味著你可以從開(kāi)發(fā)主線上分離開(kāi)來(lái),然后在不影響主線的同時(shí)繼續(xù)工作,。如果要了解Git,,這個(gè)是最重要的,可以查看下面學(xué)習(xí)資料,。
學(xué)習(xí)資源
這一篇文章純粹只是記錄一些東西,,并不會(huì)講Git的工作原理、怎么用,,因?yàn)橘Y料已經(jīng)非常完善了,,使用到時(shí)查看即可。 1. 廖雪峰Git教程(中文)
2. 圖解Git/圖形化的Git參考手冊(cè)(了解原理非常有用)
3. Git官方教程(英文) 4. Git - 生成 SSH 公鑰 https:///book/zh/v1/服務(wù)器上的-Git-生成-SSH-公鑰 下載Git 1. window git安裝包 2. mac Git安裝工具:http:///projects/git-osx-installer/ 通過(guò)Xcode安裝:Xcode->Preferences->Downloads,,選擇“Command Line Tools” Eclipse Git 我是個(gè)懶人,,不喜歡打命令去操作Git,可視化操作才是我想要的,,所以就找了在Eclipse上使用Git方法,。 1. Eclipse上安裝GIT插件EGit及使用 http://yufenfei./blog/1750124/ 2. 解決eclipse中egit中的cannot open git-upload-pack問(wèn)題 總結(jié) 使用什么版本控制工具,無(wú)論是集中式或分布式,,沒(méi)有誰(shuí)絕對(duì)取代誰(shuí),,存在都是原因的,各有各自的適用場(chǎng)景,。 附錄 下面記錄一些命令,,來(lái)源于培訓(xùn)教程 $ git init 配置用戶信息 $ git config user.name 'someGuy' $ git config user.email '[email protected]' 添加文件 $ touch README.md
查看倉(cāng)庫(kù)當(dāng)前狀態(tài) $ git status 添加文件到暫存區(qū) $ git add . 提交暫存區(qū)文件到倉(cāng)庫(kù) $ git commit -m 'add README.md file'
提交修改 $ git add README.md 將暫存區(qū)中的修改提交到倉(cāng)庫(kù) $ git commit -m 'edit README.md' 撤銷 $ git reset HEAD README.md 撤銷對(duì)文件所做的修改 $ git checkout — README.md 將暫存區(qū)中的修改提交到倉(cāng)庫(kù) $ git commit -m 'edit README.md' 版本回滾 $ git log 回到上次的提交 $ git reset --hard README.md 返回最近的提交 $ git reset --hard 0ff9 鏈接到遠(yuǎn)程倉(cāng)庫(kù) $ git remote add origin [email protected]:gongke/GitLession.git 提交代碼到本地倉(cāng)庫(kù) $ git commit -a -m '將要提交到遠(yuǎn)程' 將本地的master分支推送到遠(yuǎn)程的origin分支,并與之建立連接 $ git push -u origin master 在分支上提交,、合并分支 $ git commit 切換回master分支 $ git checkout master 合并分支 $ git merge dev 刪除分支 $ git branch -d dev 有沖突的合并 $ git checkout -b new_feature 合并分支 $ git merge new_feature 若沒(méi)有發(fā)生沖突則會(huì)自動(dòng)生成一個(gè)提交若發(fā)生沖突,,則需要手動(dòng)解決沖突,再提交 $ git add conflict_filegit commit - m 'conflict solved' 打標(biāo)簽 git tag v1. git tag -a v1.1 -m '1.1 released!' 查看標(biāo)簽 git tag 刪除標(biāo)簽 git tag -d v1. 把標(biāo)簽推送到遠(yuǎn)程 git push --tag
本文為原創(chuàng)文章,,轉(zhuǎn)載請(qǐng)保留原出處,,方便溯源,如有錯(cuò)誤地方,,謝謝指正,。
|
|
來(lái)自: 隱者黑鷹88 > 《電腦技術(shù)》