- 1. 萬(wàn)能鼠標(biāo)驅(qū)動(dòng)( Logitech MouseWare ) 9.80 官方版
- 2. snagit 10.0.1.58 簡(jiǎn)體中文綠色版
- 3. snagit 10.0.1.58 最新簡(jiǎn)體中文版
- 4. SnagIt 9.0.0.351最新中文版下載
- 5. Digital PhotoRescue Pro(恢復(fù)圖片數(shù)據(jù)) V4.5.199 ...
- 6. 西數(shù)必備診斷修復(fù)工具Western Digital Data Lifegu...
- 7. 虛擬樂(lè)高積木 LEGO Digital Designer for Mac OS X
- 8. 老牌屏捕軟件 TechSmith SnagIt v10.0.1 綠色免費(fèi)版
- 9. DIGITAL IXUS 100 IS ImageBrowser 6.6.0b Updater
- 10. 佳能(canon) DIGITAL IXUS 100 IS ZoomBrowser EX...
玩轉(zhuǎn)git,讓git成為個(gè)人工作備份利器
前言
不要把這篇文章當(dāng)做給編程人員的技術(shù)文章,即使你對(duì)編程一無(wú)所知,按照這篇文章的一步步指引,仔細(xì)模仿,也可以很容易的學(xué)會(huì)如何去做。更重要的是,這篇文章將讓你學(xué)會(huì)如何使用git成為你的工作日志,成為你的備份工具,成為你的項(xiàng)目管理軟件。沒(méi)錯(cuò),git讓這一切變得如此簡(jiǎn)單。
背景
OK,什么是git? Wikipedia告訴我們:“Git is a distributed revision control system with an emphasis on speed.“ 這是一個(gè)分布式版本控制系統(tǒng)。聽(tīng)起來(lái)似乎很霸氣,那么它是誰(shuí)開(kāi)發(fā)的呢?這個(gè)名字更霸氣, Linus Torvalds——Linux之父。
什么叫版本控制系統(tǒng)呢?
我們來(lái)舉個(gè)例子。比如說(shuō),我要寫個(gè)商業(yè)策劃書,經(jīng)過(guò)幾天熬夜,總算在2012-01-01寫了一個(gè)初稿 proposal.doc。又經(jīng)過(guò)兩天的奮戰(zhàn),你對(duì)之前的文檔做了更深入的細(xì)化,于是你把之前的文件改名成了 proposal-2012-01-01.doc 作為備份。經(jīng)過(guò)你和老板的激烈討論,文檔的反復(fù)修改,你終于在2012-01-09把第7版交給了老板,算是完成了工作;仡^看看當(dāng)前的文件夾,呵,充滿了 proposal-2012-01-01.doc,proposal-2012-01-03.doc。。。proposal-2012-01-06.doc 的文件。你不舍得刪了它們,順手打個(gè)包壓縮下扔進(jìn)了自己的歸檔文件夾里,也許永遠(yuǎn)也不會(huì)再來(lái)查看了;而且即使半年后想要來(lái)參考,也不過(guò)是看看最新版的文件,這些歷史版本之間的關(guān)系恐怕永遠(yuǎn)也想不起來(lái)了。
這個(gè)應(yīng)該算是非常普遍的例子,任何用電腦寫過(guò)報(bào)告的人都會(huì)有這種經(jīng)歷。保存某個(gè)修改的報(bào)告時(shí)我們習(xí)慣性的給之前的版本加個(gè)日期(或者其他你感興趣的方式)做個(gè)備份,生拍自己之后的某個(gè)修改不滿意好恢復(fù)回去;如果有強(qiáng)迫癥,估計(jì)恨不得寫一行保存一次——如果你學(xué)會(huì)了git,恐怕這種強(qiáng)迫癥會(huì)更加強(qiáng)烈,因?yàn)橛闷饋?lái)實(shí)在是太爽了。這就是一個(gè)非常樸素的版本控制系統(tǒng),你人為的給某個(gè)文件加上時(shí)間的標(biāo)記,把編輯的某些里程碑保存下來(lái),方便自己將來(lái)查閱、備份、修復(fù)。
既然我們有這么普遍而強(qiáng)烈的需求,版本控制系統(tǒng)軟件自然備受關(guān)注,并不斷更新升級(jí)。從 CVS 到 SVN 再到 GIT,版本控制系統(tǒng)的管理模式從集中到分布而演變。git的分布式特點(diǎn)就在于,雖然我們可以有一個(gè)最核心的中央服務(wù)器來(lái)管理所有的文件,你可以在本地生成一個(gè)局部的版本控制系統(tǒng),你的版本歷史都可以先在本地保存,直到獲得一個(gè)滿意的版本后,再提交到服務(wù)器中。對(duì)于個(gè)人來(lái)說(shuō),甚至完全不用理會(huì)中央服務(wù)器是否存在,自己玩單機(jī)版的版本控制就足夠了——本文的目的也就在于教會(huì)你怎樣玩轉(zhuǎn)單機(jī)版git。
準(zhǔn)備
工欲善其事,必先利其器。我們需要的軟件很少,只有兩個(gè),TortoiseGit和msysgit,前者是與 Windows 的資源管理器(linux和mac用戶借過(guò)一下)整合的git管理軟件,后者是git的功能軟件。
安裝好TortoiseGit之后,重啟電腦,鼠標(biāo)右鍵里就會(huì)有這幾個(gè)新的程序,git的相關(guān)功能都可以從這里訪問(wèn)到,連開(kāi)始菜單都不要,是不是很方便?
(svn是另一個(gè)軟件,請(qǐng)無(wú)視)
請(qǐng)選擇setting,我們需要配置一下git的路徑。
在紅框里,我們要設(shè)置一下 git 的路徑,就是你安裝 msysgit的bin文件夾,比如說(shuō)我的是 F:\software\develop\svn\git\PortableGit-1.7.8-preview20111206\bin,里面會(huì)有 git.exe 這個(gè)程序。
如此,我們的環(huán)境就配置好了,是不是非常簡(jiǎn)單?
實(shí)戰(zhàn)
基礎(chǔ)知識(shí)
接下來(lái),我們要具體看看git如何成為我們備份的利刃。
先隨便創(chuàng)建一個(gè)空白文件夾,作為我們實(shí)踐的平臺(tái)。
進(jìn)入這個(gè)文件夾,鼠標(biāo)右鍵選擇 “ Git Create repository here...",彈出的對(duì)話框不用管,那個(gè)復(fù)選框不要選,ok即可。這個(gè)文件夾里就會(huì)出現(xiàn)一個(gè)隱藏的 .git 文件夾。如何顯示隱藏文件夾?這個(gè)請(qǐng)放狗去搜吧。
ok,一個(gè)版本庫(kù)我們就創(chuàng)建出來(lái)了。走到上級(jí)目錄,你也許會(huì)看到,文件加上出現(xiàn)了一個(gè)綠色的對(duì)勾符號(hào),表示這個(gè)文件夾已經(jīng)受到了版本的控制。(這個(gè)圖標(biāo)的出現(xiàn)不一定實(shí)時(shí),也許你要多刷新幾次,甚至重啟電腦才行)
常見(jiàn)的圖標(biāo)有
這個(gè)文件(夾)很干凈,是最新版本文件
這個(gè)文件(夾)發(fā)生了修改,需要提交
這個(gè)文件(夾)要添加進(jìn)版本庫(kù)
這個(gè)文件(夾)沒(méi)有在版本庫(kù)中,需要添加進(jìn)來(lái)(轉(zhuǎn)為上一個(gè)圖標(biāo)的狀態(tài)),或者忽略(轉(zhuǎn)為下一個(gè)圖標(biāo)的狀態(tài))
這個(gè)文件(夾)被忽略,不受版本控制
這個(gè)文件(夾)里的內(nèi)容發(fā)生沖突(這是最危險(xiǎn)的情況,但是對(duì)于個(gè)人用戶來(lái)說(shuō),幾乎不會(huì)出現(xiàn),出現(xiàn)的情況是兩個(gè)人同時(shí)對(duì)一個(gè)文件做修改,后提交的人在更新時(shí)無(wú)法與前者完美融合時(shí),這個(gè)不需要深入理解)
通過(guò)這么直觀的圖標(biāo)暫時(shí),你就能對(duì)自己的工作文件夾了如指掌,那些文件做了修改,當(dāng)前工作是否需要提交,都一目了然。
版本分支
在進(jìn)行更進(jìn)一步操作時(shí),有必要了解一下版本分支(Branch)的概念。版本分支意味著,你從當(dāng)前的項(xiàng)目中弄出來(lái)一個(gè)拷貝,按照自己的想法胡亂修改,你之后的所有版本歷史都保存在這個(gè)分支里。如果你對(duì)這個(gè)分支很滿意,就可以把這個(gè)分支合并到原來(lái)的主分支里(Merge),甚至直接讓這個(gè)分支作為主分支;或者你感覺(jué)到越改越糟糕,就直接回到主分支工作,仿佛什么也沒(méi)有發(fā)生一樣(當(dāng)然這個(gè)新的分支要通過(guò)某些復(fù)雜的操作來(lái)刪除,你也可以留著,作為自己慘痛教訓(xùn)的警鐘)。也就是說(shuō),分支為你提供了一個(gè)嘗試某些新道路的空間。
作為個(gè)人用戶來(lái)說(shuō),有一個(gè)主分支和一個(gè)工作分支就夠了。主分支作為基準(zhǔn)一直不變,工作都在工作分支上進(jìn)行,這樣主分支與工作分支之間的變化就記錄了你的所有工作歷史。
我們來(lái)具體實(shí)踐一下。
首先,git有個(gè)不太人性化的“bug“,不能夠添加空白文件夾,因此我們需要先添加一個(gè)空白文件,比如 test.txt,然后在文件夾上右鍵選擇 “Git commit"
選擇添加的那個(gè)文件,寫點(diǎn)message(git每次提交必須寫上一些文字說(shuō)明這次更新的內(nèi)容,從而讓你知道每個(gè)版本有什么變化)提交即可
在剛才的工作文件加上右鍵,選擇 “Create Branch“
隨便取名比如 develop,確定即可。
依然右鍵選擇 “Show log“,出現(xiàn)如下對(duì)話框
可以看到,我們已經(jīng)有了一個(gè)版本歷史,它詳細(xì)記錄了我們的改變。上面有兩個(gè)顏色標(biāo)簽,紅色的master和綠色的develop,這個(gè)代表了我們的分支。master是我們第一次提交時(shí)系統(tǒng)自動(dòng)生成的分支;develop是我們手動(dòng)創(chuàng)建的。紅色的代表當(dāng)前的工作分支,綠色的代表存在的歷史分支。我們需要把工作分支切換到 develop。