Github for Windows 版本控制工具

        版本控制系統並非一個新興技術,實際上在軟件開發中非常常用,軟件開發人員藉此很好的管理自己的項目開發文檔和相關的代碼。事實上,很多版本控制系統的作用不止侷限於代碼管理,在我們日常工作中,版本控制系統也能發揮很強大的作用。本文接下來要講的重點也是日常生活當中的應用,同時通過實際操作的例子介紹github for Windows版本控制系統的使用。

、版本控制的概念

       什麼是版本控制?這裏引用《pro git》當中的原話:“版本控制是一種記錄若干文件內容變化,以便將來查閱特定版本修訂情況的系統。”我們可能都有過工程返工,或者修改項目文件的經歷,就拿筆者本人來說,原來做圖形設計的時候,爲了滿足客戶的各種稀奇古怪的想法,往往會製作很多個版本的Photoshop工程文件,而很多嘗試之後客戶又想讓你給他還原到最開始的版本。大多數時候我們採用複製源文件來保存我們製作的版本,這樣客戶需要的時候我們可以提取相應的文件給他,而不是又返工做一次。這個時候我們可能會有很多不同的文件同時存在,我在網上看到過如下所示比較極端的情況:

計算機生成了可選文字: 城1碗土圖一麗睿氣1巍工圖改dw:摘1癮工圖完成版dw:氣l癮工圖完成版改1.dw:氣l癮工圖完成版改2.面‘氣l#施工圖最終版dw::氣l癮工圖最終版改1.dw;魚,琳工圖最終版改2,dw:氣1巍工圖最最終版dw::氣1巍工圖最最終版改dw:魚1巍工圖絕對不改版dw:魚:癮工圖絕對不改版改,.dw:絕1碗工圖絕對不改版改2.dw'習湘口口口口口口口口口口

       對於比較小的文件當然這樣處理沒問題,可是大的工程呢?一個文件就幾百上千個M的文件,你還這樣複製?這個時候,你就需要一個版本控制系統了。採用版本控制系統(VCS)是個明智的選擇。有了它你就可以將某個文件回溯到之前的狀態,甚至將整個項目都回退到過去某個時間點的狀態。你可以比較文件的變化細節,查出是誰最後修改了什麼地方從而造成某些怪異問題,又是誰在何時報告了某個功能缺陷,等等。使用版本控制系統通常還意味着,就算你胡來搞砸了整個項目,把文件改的改,刪的刪,你也可以輕鬆恢復到原先的樣子。而由此額外增加的工作量卻微乎其微。而這樣的版本控制系統很多程序員早已操作的非常熟練,但是其他領域的人們對此可能還並不熟悉,這是一個非常強大的工具,它可以管理幾乎一切文件,不僅僅是代碼文件。

github for Windows介紹

        Git是如今非常流行的分佈式版本控制系統(關於分佈式和集中式的區別你可以自己上網搜,非常容易理解),而github for WindowsWindows平臺上Git的圖形化客戶端,提供了版本控制的常用操作。其他平臺例如Linux上,Git操作主要是靠在控制檯輸入命令進行執行,但是Windows平臺用戶大多不是程序員,我們喜歡圖形化的操作界面,於是Git將很多常用的基本操作做成了圖形化的應用,非常容易操作。你可以從www.github.com官網上下載到github for Windows的最新版。

       關於Git進行版本控制的原理我並不打算多講,你可以參考《pro git》這本書,寫的非常詳細。但我相信更多的人更關心的是如何快速使用這個工具進行版本管理,於是,我們直接進入下一節,講一個操作實例。

github for Windows操作實例講解

       首先,我們設想一個場景:你的老闆是一個善變的人,他經常折磨你做重複的工作,並且最讓你受不了的是,他經常在讓你做了很多新想法嘗試之後,突然覺得還是原來的方案好,於是又讓你改回去。非常inhuman!。現在,他讓你做一個word文檔,你忙活了大半夜趕工終於做出來了,爲了以防萬一,你想利用github for Windows來進行版本管理。事實上,你不用腳也能想到他將來肯定會讓你改方案。

       需要說明的是:在使用github for Windows之前,你需要創建一個Git賬號,這個這裏就不講了。

          1、創建一個Repository

打開github for Windows界面,點擊create按鈕,就會彈出創建版本倉庫的界面。我們這裏只講本地倉庫,所以將Push to GitHub前面的勾去掉。

計算機生成了可選文字: 口X[efresh今土0015Loca}口茜口限F1lterrePOsitories今GitHub白dragarepositoryheretoadd白計算機生成了可選文字: Loca}0Newreposi'o即月GitHubJaCoryE:訂em必PUShtoGitHUb②C陀ateOC"n'e'

      可以看到,有三個欄目需要我們填寫,分別是Name(倉庫名稱)、Description(描述)和Directory(倉庫路徑)。倉庫路徑就是我們本機的文件路徑,指定我們的版本文件放在哪裏,比如我放在“E:\Temp\”目錄下。現在我們分別填寫如下:

NameTest

DescriptionTest github for Windows-----Jacory Gao

DirectoryE:\Temp\

這時,點擊Create之後,在E盤的Temp目錄下,新建了一個Test文件夾。計算機生成了可選文字: 名稱.gitattribute,.gitignore

同時,可以看到這個文件夾裏面多了兩個文件,Git版本控制的屬性文件都在這裏,我們不用管他,只要不刪除就是了。在github for Windows界面中也出現了一個本地倉庫Test

     計算機生成了可選文字: +二reateo,ffesh今10015Loca}匹遍遍今GitHub.

2、創建一個文件。

   現在,我們已經擁有了一個受GitHub監視的文件夾了,我們往這個文件夾裏面添加一個word文件,如下圖。

   計算機生成了可選文字: 地磁盤(E:)*TempTest己攫名稱修改日期類型大小_.gitattributes一9itignore喲9it卜。b下est.docx2014/2/1星期六…2014/2/1星期六…2014/4/15星期…GYrATTRIBUTESGl刀GNORE文件MicrosoftWord

    這時,再回到github for Windows的界面裏面,我們雙擊Test倉庫。就可以看到我們對文件夾所做的更改了。

                                               

    現在,我們需要填寫界面左上角的提交信息,並且點擊Commit來提交這個版本。

  計算機生成了可選文字: Uncommittedchanges"'deorepositoryl添加了一個githubTestdocx文檔COmmittomaste「361巴tobe仁Ommitted

    之後我們會發現,這個倉庫信息被成功提交了。

計算機生成了可選文字: 飛,J產卜氏工吸汀洲C戶川卜、a了r‘飛』曰O丁est@pushtogithub⑦masteFroII隊滬}22Nouncommittedchanges‘聲expandall乙revertUnsyncedcommitsrep0SitorylJacory心68c165a添加T一個github丁est.docx文檔.gitattributes.gitignore215..…History*9ithubTest.docx

3、創建新的分支,並更改文件。

   現在我們想要進行一些文件的更改,但是爲了保險起見,我們啓用一個新的分支來進行這個操作。關於分支的內容你可以想象成流水線,master是默認的分支,一般作爲工程的主分支,你可以新建無數個分支來進行別的操作,之後可以把這些工作於主分支合併,或者刪除這些分支,並不影響主分支中的文件內容。更多的知識你可以參考《pro git》。

現在我們先創建一個分支Test,通過點擊master按鈕,並在欄目中填入Test,點擊createbranchTest,建立一個新的分區

計算機生成了可選文字: X衛ushtogithub⑦m"',,『BranchesTe'tp魚anage/mergeX+CFeatebFanCh:Test,1味..…

    此時,我們的界面上分支顯示當前分支爲Test分支。

計算機生成了可選文字: @衛ushtogithub⑦Test@Branches夕皿anage/merge口口口口口口口口入masteF,一.1-一曰口口口口日口卜L月匕Lrl二七護

   現在我們在word文檔裏面做一些更改試試。我們在word文檔裏面隨意鍵入一些字符,並保存文檔。

 計算機生成了可選文字: GithubforWindowsTest---一JacoryGao、

   再次打開github for Windows中的Test倉庫,我們看到Git已經監測到我們對文件做了更改,並且我們需要填寫提交信息來進行提交一個新的版本。同樣,填寫相應的信息後,點擊Commit提交。

 

 計算機生成了可選文字: O丁est@衛ushtogithub⑦Test④Uncommittedchangesrepository2inTe'tBranch更改了word文檔中的內容。h.d·O}口Fi!estoCommit尹‘collapseall,口9ithubTest·docXBinaryfilesdiffer.向CommittoTest1石letobecommitted

 

 計算機生成了可選文字: O,est@。ushtogithub⑦Test④Nouncommittedchangesrepository2inTestBranchJacory心622145f,才collapseall乙revert點rollbackUnsyncedcommits更改了word文檔中的內容。.repository2inTestBranchjust~勿Jacory.'g''h"b'e"'d”〔xBinaryfilesdiffer'、JZrepositoryl三尸}朋便::g。{JacoryHistory

   現在我們擁有了兩個不同的版本。請注意,此時我們的word文檔裏面是有內容的。

4、返回以前的版本。

    現在我們需要返回到主幹工程master分支上去,以撤銷我們在Test裏面所做的一切更改。非常簡單,我們只需要在分支切換工具上,點擊master工具就好了,就這麼簡單。

計算機生成了可選文字: @pushtogithub②m"',,r④Branches夕皿anage/mergeFilterOrC陀steNeWTest口口口口.                                                

   現在再去看看我們文件夾裏面的文件,打開word後發現,原來的內容不見了。

計算機生成了可選文字: 目                                      

如果我們想要再回到更改之後的內容。同樣,你只需要切換到Test分支就可以了。這也就是說,我們可以通過新建分支來進行各種不同的版本管理,當然你還可以將新建的分支合併到主分支master中去。本文主要目的在於引導大家使用github for Windows,因此不會太深入講解其中的原理。最後我再一次推薦大家閱讀《pro git》。

發佈了33 篇原創文章 · 獲贊 41 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章