當(dāng)前位置: 首頁IT技術(shù) → 玩轉(zhuǎn)git,讓git成為個人工作備份利器

玩轉(zhuǎn)git,讓git成為個人工作備份利器

更多

前言

    不要把這篇文章當(dāng)做給編程人員的技術(shù)文章,即使你對編程一無所知,按照這篇文章的一步步指引,仔細(xì)模仿,也可以很容易的學(xué)會如何去做。更重要的是,這篇文章將讓你學(xué)會如何使用git成為你的工作日志,成為你的備份工具,成為你的項目管理軟件。沒錯,git讓這一切變得如此簡單。

背景

    OK,什么是git? Wikipedia告訴我們:“Git is a distributed revision control system with an emphasis on speed.“ 這是一個分布式版本控制系統(tǒng)。聽起來似乎很霸氣,那么它是誰開發(fā)的呢?這個名字更霸氣, Linus Torvalds——Linux之父。

什么叫版本控制系統(tǒng)呢?

    我們來舉個例子。比如說,我要寫個商業(yè)策劃書,經(jīng)過幾天熬夜,總算在2012-01-01寫了一個初稿 proposal.doc。又經(jīng)過兩天的奮戰(zhàn),你對之前的文檔做了更深入的細(xì)化,于是你把之前的文件改名成了 proposal-2012-01-01.doc 作為備份。經(jīng)過你和老板的激烈討論,文檔的反復(fù)修改,你終于在2012-01-09把第7版交給了老板,算是完成了工作。回頭看看當(dāng)前的文件夾,呵,充滿了 proposal-2012-01-01.doc,proposal-2012-01-03.doc。。。proposal-2012-01-06.doc 的文件。你不舍得刪了它們,順手打個包壓縮下扔進了自己的歸檔文件夾里,也許永遠(yuǎn)也不會再來查看了;而且即使半年后想要來參考,也不過是看看最新版的文件,這些歷史版本之間的關(guān)系恐怕永遠(yuǎn)也想不起來了。

    這個應(yīng)該算是非常普遍的例子,任何用電腦寫過報告的人都會有這種經(jīng)歷。保存某個修改的報告時我們習(xí)慣性的給之前的版本加個日期(或者其他你感興趣的方式)做個備份,生拍自己之后的某個修改不滿意好恢復(fù)回去;如果有強迫癥,估計恨不得寫一行保存一次——如果你學(xué)會了git,恐怕這種強迫癥會更加強烈,因為用起來實在是太爽了。這就是一個非常樸素的版本控制系統(tǒng),你人為的給某個文件加上時間的標(biāo)記,把編輯的某些里程碑保存下來,方便自己將來查閱、備份、修復(fù)。

    既然我們有這么普遍而強烈的需求,版本控制系統(tǒng)軟件自然備受關(guān)注,并不斷更新升級。從 CVS 到 SVN 再到 GIT,版本控制系統(tǒng)的管理模式從集中到分布而演變。git的分布式特點就在于,雖然我們可以有一個最核心的中央服務(wù)器來管理所有的文件,你可以在本地生成一個局部的版本控制系統(tǒng),你的版本歷史都可以先在本地保存,直到獲得一個滿意的版本后,再提交到服務(wù)器中。對于個人來說,甚至完全不用理會中央服務(wù)器是否存在,自己玩單機版的版本控制就足夠了——本文的目的也就在于教會你怎樣玩轉(zhuǎn)單機版git。

準(zhǔn)備

工欲善其事,必先利其器。我們需要的軟件很少,只有兩個,TortoiseGit和msysgit,前者是與 windows 的資源管理器(linux和mac用戶借過一下)整合的git管理軟件,后者是git的功能軟件。

安裝好TortoiseGit之后,重啟電腦,鼠標(biāo)右鍵里就會有這幾個新的程序,git的相關(guān)功能都可以從這里訪問到,連開始菜單都不要,是不是很方便?

(svn是另一個軟件,請無視)


請選擇setting,我們需要配置一下git的路徑。

在紅框里,我們要設(shè)置一下 git 的路徑,就是你安裝 msysgit的bin文件夾,比如說我的是 F:\software\develop\svn\git\PortableGit-1.7.8-preview20111206\bin,里面會有 git.exe 這個程序。

如此,我們的環(huán)境就配置好了,是不是非常簡單?


實戰(zhàn)

基礎(chǔ)知識

接下來,我們要具體看看git如何成為我們備份的利刃。

先隨便創(chuàng)建一個空白文件夾,作為我們實踐的平臺。

進入這個文件夾,鼠標(biāo)右鍵選擇 “ Git Create repository here...",彈出的對話框不用管,那個復(fù)選框不要選,ok即可。這個文件夾里就會出現(xiàn)一個隱藏的 .git 文件夾。如何顯示隱藏文件夾?這個請放狗去搜吧。

ok,一個版本庫我們就創(chuàng)建出來了。走到上級目錄,你也許會看到,文件加上出現(xiàn)了一個綠色的對勾符號,表示這個文件夾已經(jīng)受到了版本的控制。(這個圖標(biāo)的出現(xiàn)不一定實時,也許你要多刷新幾次,甚至重啟電腦才行)

常見的圖標(biāo)有

 這個文件(夾)很干凈,是最新版本文件

這個文件(夾)發(fā)生了修改,需要提交

這個文件(夾)要添加進版本庫

這個文件(夾)沒有在版本庫中,需要添加進來(轉(zhuǎn)為上一個圖標(biāo)的狀態(tài)),或者忽略(轉(zhuǎn)為下一個圖標(biāo)的狀態(tài))

這個文件(夾)被忽略,不受版本控制

這個文件(夾)里的內(nèi)容發(fā)生沖突(這是最危險的情況,但是對于個人用戶來說,幾乎不會出現(xiàn),出現(xiàn)的情況是兩個人同時對一個文件做修改,后提交的人在更新時無法與前者完美融合時,這個不需要深入理解)

通過這么直觀的圖標(biāo)暫時,你就能對自己的工作文件夾了如指掌,那些文件做了修改,當(dāng)前工作是否需要提交,都一目了然。

 

 版本分支

     在進行更進一步操作時,有必要了解一下版本分支(Branch)的概念。版本分支意味著,你從當(dāng)前的項目中弄出來一個拷貝,按照自己的想法胡亂修改,你之后的所有版本歷史都保存在這個分支里。如果你對這個分支很滿意,就可以把這個分支合并到原來的主分支里(Merge),甚至直接讓這個分支作為主分支;或者你感覺到越改越糟糕,就直接回到主分支工作,仿佛什么也沒有發(fā)生一樣(當(dāng)然這個新的分支要通過某些復(fù)雜的操作來刪除,你也可以留著,作為自己慘痛教訓(xùn)的警鐘)。也就是說,分支為你提供了一個嘗試某些新道路的空間。

作為個人用戶來說,有一個主分支和一個工作分支就夠了。主分支作為基準(zhǔn)一直不變,工作都在工作分支上進行,這樣主分支與工作分支之間的變化就記錄了你的所有工作歷史。

我們來具體實踐一下。

首先,git有個不太人性化的“bug“,不能夠添加空白文件夾,因此我們需要先添加一個空白文件,比如 test.txt,然后在文件夾上右鍵選擇 “Git commit"

選擇添加的那個文件,寫點message(git每次提交必須寫上一些文字說明這次更新的內(nèi)容,從而讓你知道每個版本有什么變化)提交即可

 

在剛才的工作文件加上右鍵,選擇 “Create Branch“

 

 隨便取名比如 develop,確定即可。

 依然右鍵選擇 “Show log“,出現(xiàn)如下對話框

      可以看到,我們已經(jīng)有了一個版本歷史,它詳細(xì)記錄了我們的改變。上面有兩個顏色標(biāo)簽,紅色的master和綠色的develop,這個代表了我們的分支。master是我們第一次提交時系統(tǒng)自動生成的分支;develop是我們手動創(chuàng)建的。紅色的代表當(dāng)前的工作分支,綠色的代表存在的歷史分支。我們需要把工作分支切換到 develop。

在文件夾上右鍵選擇 “Switch/Checkout", Branch里選擇develop,再查看歷史,我們就會發(fā)現(xiàn),develop變成了紅色。

開始工作

     接下來我們就可以隨心所欲的工作了。編輯一下test.txt,新建文件夾,添加word,excel文件,總之,隨便工作。你會看到,修改的文件加了紅色的嘆號,新加為被版本控制的文件加了藍(lán)色的問號,對于藍(lán)色問號,你可以選擇右鍵里的 “Add“讓它變成藍(lán)色的加號(或者有時會一步到位變成綠色的對勾,這個不重要),或者不管他。

然后在根文件上,選擇 Commit,再來看看歷史,就會發(fā)現(xiàn)你的工作記錄了

可以發(fā)現(xiàn),develop進步了一個版本,master還停留在原處。歷史顯示,test.txt被修改,一個word和excel被添加;文件夾信息不回被記錄。

 雙擊下面的test.txt文件,它甚至?xí)o你展示出這個文件發(fā)生了哪些變化。甚至連 excel 和 word 的變化也會給你選擇合適的方式進行比較。

 

 

令人震驚吧!沒錯,git會完全忠實的記錄的一點一滴,只要你commit,系統(tǒng)就會為你保存下來一個歷史記錄(不必?fù)?dān)心空間,它會采用很先進的方式進行增量保存,遠(yuǎn)比你每次都復(fù)制要節(jié)省空間得多)

 

結(jié)束語

差不多已經(jīng)把如何用git來進行工作的方法介紹完了,還有一個非常重要的功能沒有說,怎么樣恢復(fù)歷史版本的文件呢?很簡單,在想要恢復(fù)的文件上查看歷史,選擇revert即可!

 

即使你完全不懂編程,相信上面的講解也可以教會你怎么樣來使用了吧。趕緊來試試吧!

熱門評論
最新評論
發(fā)表評論 查看所有評論(0)
昵稱:
表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)