非程序員如何使用 Git - 版本控制你的生活

jopen 10年前發布 | 10K 次閱讀 Git

在協同工作和版本控制方面,Git 絕對是一個優秀的工具,但其優點并不被大眾所熟知。在過去的幾年中,由于大眾對于文字處理,電子表格(譯者注:這里暗指Word和Excel,下同。)以及其他常用的功能的需求,優秀的協作工具(比如Google Drive)變得越來越受歡迎。然而,這些工具并沒有提供好用的版本控制功能——它們只能線性的前進或回退到某一步(版本)上。

如 果我們希望通過同一文件不同的版本去測試某個問題的不同方法,或者在同一個內容上做操作,同時又不希望影響到別人或創建一個新的文件,這些工具顯 然沒辦法實現。對于每一個在辦公室工作的非程序員,大概都遇到過要把一個工程迅速移動到打有時間戳的文件夾中,這些文件夾又都包含同一個文件。如果你和我 一樣,可能會想到把這些文件都放在一個共享網盤中,你可能在這場“游戲”中領先了一步。可惜的是,現狀可能就是這樣,這也使你在這場“游戲”中,沒有任何 借口不去使用Git的那些功能。沒錯——Git不僅僅能用來編程。

這看起來似乎是個瘋狂的主意——Git生來就不是用于處理電子表格和文 字處理的。好吧,你知道什么才聽起來更瘋狂嗎?就是把許多含有時間戳的文件放 在每一個人的硬盤中!學會git add,commit,branch,merge和push的使用方法非常簡單,而且會讓你受益匪淺。

電子表格的版本控制

我 們先在MS Excel中試試版本控制。我們可以先創建一個簡單的電子表格比如XLSX(Excel表格的默認類型),XLS(比XLSX更高級)和CSV(用逗號分 隔內容)。對于每一個文件的變化,我們創建一個新的分支,加入并提交我們對文件的修改,然后切換回我們的主分支并合并兩個分支。

(譯注:本文這里沒有說的很清楚,拿下文第一個測試為例,作者意思是先對這個編輯好的表格創建新的分支,并在新的分支上刪除一行,添加并提交修改,再切換回主分支,合并兩個分支,即可看到變化。下同。)
非程序員如何使用 Git - 版本控制你的生活

首先,我們對這個電子表格做一些簡單的編輯。我們刪除其中一行。
非程序員如何使用 Git - 版本控制你的生活

這里應該沒什么問題。下一步,我們做一些更進一步的修改,我們要加入一些簡單的公式(不能加在CSV中,這種類型文件不支持公式)。
非程序員如何使用 Git - 版本控制你的生活

很好!我們再快速做一個測試——看看當我們編輯文字類型后會有什么變化,比如修改文字顏色或背景顏色。
非程序員如何使用 Git - 版本控制你的生活

同樣成功了!太棒了——Git對電子表格足夠的智能,可以根據變化創建分支,做出改變并合并回同一個分支。

文字處理的版本控制

接下來該說文字處理了。我們將會按照上面對電子表格一樣的處理流程——創建一個新的分支,添加和提交修改,然后切換回主分支在合并兩個分支。
非程序員如何使用 Git - 版本控制你的生活
效果很好。如果你仔細想想,就會發覺文本文件中的內容與HTML文件中的內容基本上是一回事——它們都是不同語言的純文本。或者說,它們近乎是相同的,除非你修改你的word文檔,比如修改所有的空格,文本類型,顏色或其他什么的。看看那會發生什么?
非程序員如何使用 Git - 版本控制你的生活
好吧,沒能成功。令人驚訝的是,當我們不修復沖突并試圖合并時,似乎Git報出了警告信息。當然,我們還是可以繼續編輯內容。只要我們在演示之前修改我們的內容,就不會有問題。

協作的好處

我 們僅僅說了Git版本控制的好處,但是它的協作特性也非常有用。如果你在協作中用到了Github,你和你的小伙伴們都會接觸到其更高級的特性。 比如,你可以根據同一個倉庫(用來放置文件的地方,譯者注)創建一個自己的分支(fork)或拷貝(clone)其一份,對同一個或同一批文件進行操作, 然后更新(push,與后面的pull作用都與公共版本庫進行交互,負責更新和同步,譯者注)或給團隊的隊長(比如編輯人員)發一封同步(pull)請 求,以便他可以進行查看。隊長甚至可以僅僅選擇同意加入某些特定同步請求并拒絕加入其它的同步請求。而且他不需要下載同一個含有相同名字文件或文件夾的二 十個版本,并搞亂自己的桌面。

需要記住的事情

Git也有它的局限性。如果你對一個大文件做了很多大的修改,Git可能會做出奇怪的回應并卡住不動,它會報出基本上處處都存在沖突。雖然這很讓人頭疼,但是Git至少不會提示一大堆的警告并破壞了你的文件。

建議你將文件按照內容和類型進行分類。Git是為了處理代碼的變化而生,這些代碼其實都是文本。只要你的工作是處理文本內容,使用Git就不會有問題。而且,你的文件類型越單一,Git就會處理的越好。Github的更新請求功能讓人贊嘆。

不幸的是,你不能預覽某個特定類型的文件的更新請求,比如DOCX,XLSX和其他常用的文件類型。不過,這個功能還可能會對其他類型的文件管用——去找找看!或者把你的文件轉換成Github能夠接受的文件類型。

TL;DR

我是否應該給一堆文件打上時間戳,把它們丟進文件夾中,并給和我一起工作小伙伴們都發上一封郵件?

歡迎大家使用 http://git.oschina.net/

原文鏈接: Pat Whitrock   翻譯: 伯樂在線 - yuliu
譯文鏈接: http://blog.jobbole.com/67393/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!