非程式設計師如何使用 Git——版本控制你的生活

2021-01-10 開源中國

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

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

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

電子表格的版本控制

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

(譯註:本文這裡沒有說的很清楚,拿下文第一個測試為例,作者意思是先對這個編輯好的表格創建新的分支,並在新的分支上刪除一行,添加並提交修改,再切換回主分支,合併兩個分支,即可看到變化。下同。)

首先,我們對這個電子表格做一些簡單的編輯。我們刪除其中一行。

這裡應該沒什麼問題。下一步,我們做一些更進一步的修改,我們要加入一些簡單的公式(不能加在CSV中,這種類型文件不支持公式)。

很好!我們再快速做一個測試——看看當我們編輯文字類型後會有什麼變化,比如修改文字顏色或背景顏色。

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

文字處理的版本控制

接下來該說文字處理了。我們將會按照上面對電子表格一樣的處理流程——創建一個新的分支,添加和提交修改,然後切換回主分支在合併兩個分支。

效果很好。如果你仔細想想,就會發覺文本文件中的內容與HTML文件中的內容基本上是一回事——它們都是不同語言的純文本。或者說,它們近乎是相同的,除非你修改你的word文檔,比如修改所有的空格,文本類型,顏色或其他什麼的。看看那會發生什麼?

好吧,沒能成功。令人驚訝的是,當我們不修復衝突並試圖合併時,似乎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/

相關焦點

  • 1小時搞懂 Git 版本控制
    當時因為需要做一個項目,所以他教我如何使用 Git 將寫好的代碼推送到 GitHub 上,然後再從遠程倉庫拉到本地。起初因為沒有接觸過 Git,覺得這玩意很難學,又是一大堆命令需要記憶,在他教我的時候內心是牴觸的,當時覺得為什麼不把寫好的代碼發送給我呢?你是否也有過這樣的疑問呢?學習 Git 的時候,因為沒有和他認真學,在他教過我一遍之後還是一臉懵逼,寫命令的時候也是不時地回頭查看。
  • 動畫:掃盲 Git 版本控制
    最近不少讀者和鹿哥反饋說,能不能掃盲一下 git,無論是 github 開源項目網站還是團隊合作,都少不了 git 版本控制的使用。加上很多的在校生沒有過多接觸過 git,所以呢,鹿哥決定最基礎的講起,請大佬多多包涵我這基礎的內容。因為 git 涉及到的內容太多,寫一篇太長,在閱讀體驗上不友好,那麼分為兩篇吧。
  • Git版本控制常用命令
    Git簡介Git是一個開源的分布式版本控制系統,可以有效、高速地處理從很小到非常大的項目版本管理。 Git 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體。
  • git 版本控制初學者指南
    如果你還不熟悉版本控制,現在是開始學習的時候了。幾乎可以肯定都是,Git 在任何職業環境中都會用到,你越早熟悉它,對僱主來說你就越有價值。此外,這將使團隊的項目工作變得更容易管理。你是否曾經將你的代碼搞得一團糟,甚至覺得從頭開始會更容易?有了版本控制,你可以返回到之前的某一個版本,而不需要在凌晨 2 點從頭再來。
  • Git 入門指引--「就是這麼任性,我只用 Git 控制版本!」
    所以,所謂「版本控制系統」,就是來解決這類問題的。Git又是什麼?沒錯,Git 就是一個版本控制軟體。在進行軟體開發時,一個團隊的人靠使用 Git,就能輕鬆管理好項目版本,做好項目的追蹤和輔助進度控制。確切的講,Git 是一款分布式版本控制系統。
  • 乾貨 | git 版本控制初學者指南
    幾乎可以肯定都是,Git 在任何職業環境中都會用到,你越早熟悉它,對僱主來說你就越有價值。此外,這將使團隊的項目工作變得更容易管理。你是否曾經將你的代碼搞得一團糟,甚至覺得從頭開始會更容易?有了版本控制,你可以返回到之前的某一個版本,而不需要在凌晨 2 點從頭再來。
  • Git 版本控制,看這篇就夠了 (一)
    本文核心點:Git的基本概念安裝Git配置用戶信息創建Git託管的項目工作區與暫存區一、什麼是Git1. git的概念git是世界上目前最先進的分布式版本控制系統,致力於團隊、個人進行項目版本管理2. git的歷史git是linux的創始人linus,在付費版本控制工具BitMover收回對Linux社區免費使用權利的時候,一怒之下花費兩個星期的時間寫出來的。(不要逼牛筆的人)二、開始1.
  • Git 前時代:使用 CVS 進行版本控制 | Linux 中國
    如果你的軟體工程師職業生涯跟我一樣,也是晚於此時間的話,Git 可能是你用過的唯一版本控制軟體。雖然其陡峭的學習曲線和不直觀地用戶界面時常會遭人抱怨,但不可否認的是,Git 已經成為學習版本控制的每個人的選擇。Stack Overflow 2015 年進行的開發者調查顯示,69.3% 的被調查者在使用 Git,幾乎是排名第二的 Subversion 版本控制系統使用者數量的兩倍。
  • 微信小程序如何使用 Git 實現版本管理和協作開發
    雖然微信Web開發工具提供了對Git文件版本狀態的提示,但實際的使用體驗依然不盡人意。隨著微信Web開發工具的更新,最新的內測版本已經支持Git的直接管理,本文將就在微信Web開發工具中使用Git做版本管理做詳細介紹。
  • Git發布2.30版本
    Git 2.30版本已於北京時間今天凌晨3點發布,是該廣受歡迎的分布式修訂版本控制系統的最新穩定版本更新,Git由Linux內核發明者Linus大神於2005年推出。
  • Git 常用命令及使用
    Git 常用命令使用1)、本地庫初始化 git init2)、設置籤名作用:區分不同開發人員的身份。說明:這裡設置的籤名和登錄遠程庫(代碼託管中心)的帳戶沒有關係。a)、項目級別籤名:git config user.name [AAA]git config user.email [郵箱地址]籤名信息位置:cat .git/configb)、系統級別籤名:git config --globaluser.name [AAA]git config --global user.email
  • Git使用教程:最詳細、最傻瓜、最淺顯、真正手把手教!
    Git是分布式版本控制系統,那麼它就沒有中央伺服器的,每個人的電腦就是一個完整的版本庫,這樣,工作的時候就不需要聯網了,因為版本都是在自己的電腦上。既然每個人的電腦都有一個完整的版本庫,那多個人如何協作呢?比如說自己在電腦上改了文件A,其他人也在電腦上改了文件A,這時,你們兩之間只需把各自的修改推送給對方,就可以互相看到對方的修改了。
  • Git如何使用代理
    github不使用代理就可以訪問, 但如何要克隆android的源碼或其他的一些不在github的源碼會非常慢. 就算你電腦掛的科學上網也不行, 因為git並不會自動使用代理.其實要讓git使用代理非常簡單設置代理git config --global http.proxy 代理地址git config --global https.proxy 代理地址取消代理git config --global --unset http.proxygit config --global --unset
  • 使用commitizen 規範 Git 提交說明
    前言 Git 是目前世界上最先進的分布式版本控制系統(沒有之一)。 Git 每次提交代碼時,都需要寫 Commit Message (提交說明),否則就不允許提交。
  • Git版本管理完全指南—學好Git一文足矣
    4. git reset HEAD file  撤回暫存區的文件修改到工作區4、標籤操作1. git tag 標籤名 添加標籤(默認對當前版本)2. git tag 標籤名 commit_id 對某一提交記錄打標籤3. git tag -a 標籤名 -m '描述'  創建新標籤並增加備註4. git tag 列出所有標籤列表5.
  • 版本管理工具Git,你用對了了嗎?這一招絕對好用
    對於開發人員來說,一個團隊一起開發,那麼肯定會涉及到團隊協作開發,這個時候版本管理工具就起了很大的作用,今天我們就來說說超強版本管理工具git應該怎麼用才最好,怎麼用能最大程度保證master分支代碼的乾淨。
  • Git教程(一)
    版本控制(Revision control)是一種在開發的過程中用於管理我們對文件、目錄或工程等內容的修改歷史,方便查看更改歷史記錄,備份以便恢復以前的版本的軟體工程技術。在處理生物信息數據的過程中,隨著內容的增多,我們面臨著如何管理不同的文件版本的挑戰,同時,我們也希望可以有一種更好的方式來團隊協作。
  • Git入門篇之版本回溯
    除了使用git status查看當前狀態,還可以使用git diff查看具體操作。charlie@MacBook-Pro MyGitTest % git statusOn branch masternothing to commit, working tree clean同樣使用git status查看狀態,顯示分支master中沒有待提交的任務,且分支clean整潔(或者說乾淨,暫時沒想到合適詞彙)。
  • 大牛總結的 Git 使用技巧,寫得太好了!
    安裝後,還要在命令行輸入$git config --global user.name "你的名字"$git config --global user.email "你的郵箱"global表示全局,這臺機器所有的Git倉庫都會使用這個配置。允許單個倉庫使用其他的名字和郵箱。
  • GitBook簡單使用
    它可以把你的書本生成為許多格式:PDF,ePub,mobi,或者成為一個網站。GitBook工具鏈是開源並且完全免費的,它的源碼可以在 GitHub 上獲取,也可以直接訪問官網 GitBook進行學習、使用。