伯樂線上注:我們釋出了很多Git相關的文章,有系列教程(《Pro Git系列》),也有各種獨門絕技(《讓你的Git水平更上一層樓的10個小貼士》)。但這篇兩分鐘的Git指南算是最精簡的。如果想了解更多Git相關的文章,請從這裡開始。
以下是Git兩分鐘指南的正文內容。
受到Git五分鐘指南的啟發,我決定更進一步,寫一篇更短時間內就能看完的Git教程。當然,這是指最簡單的Git!但是對於新手個人開發者來說足夠了,同時也給你提供一個可以繼續深入的起點。
能夠從本指南有所收穫的例子也許是這樣的,一個高中生正在進行他(或是她)的第一個專案,而且並不需要和別人分享程式碼。(具體講其實是我兒子,他已經寫了很多程式碼,但是沒有時間去學習一個版本控制工具。這份指南是為他寫的,當然我覺得別人也能用的到。)對他來說,使用Git是很有意義的。和Subversion不同,他不需要一個伺服器,就可以很容易地使用Git(只要他對硬碟進行定期備份,當然,他確實也在這麼做)。正好在一個兩分鐘的指南中,沒有時間去涉及伺服器的事情,所以這篇指南對類似我兒子這種情況特別合適。
再次強調,本文提及的Git使用方法,僅對那些會定期備份硬碟的個人開發者來講是合適的。兩分鐘Git指南加上一個備份策略,你可以自信的提交檔案並且知道如果自己需要的話,你可以檢視改動或是恢復之前的版本。
為什麼學習Git如此有必要?好吧,對於開發者來講,最煩人、最耗費時間的事情就發現之前可以工作的程式現在無法工作了。在這種情況下,能夠看到之前的改動並且回退到之前的版本會有很大的幫助。同樣的,能夠回退到之前的狀態可以讓你自由的測試新的方法–做實驗完全沒有問題因為你總是可以重來。
如果有機會的話,你絕對應該學一下暫存(staging)和分支(branching),還有向(從)遠端倉庫上傳(pushing)和獲取(pulling)。但是你下面要學到的東西同樣很有用。 注意:下面提到的檔名,你都可以使用檔案路徑。
使用前的設定
如果你還沒有安裝git的話,請檢視 Getting Started page上的安裝指南。 第一次使用git,我們假定你正在一個資料夾內工作,該資料夾是你專案的主資料夾。你需要做的第一件事情是用下面這條命令來初始化資料夾供Git使用。
git init
告訴git你要處理的檔案
現在你需要告訴git,需要考慮哪些檔案。如果你有N個檔案,你可以使用
git add <file1> <file2> … <fileN>
來新增他們。或是你想要把目錄下的檔案全部新增,你可以使用
git add . (句號是命令的一部分,表示當前目錄。)
提交改動
下一步,我們需要提交改動。任何時候,你想要提交一個檔案或多個檔案的改動,執行
git commit <file1> <file2> … <fileN> -m “This is your commit message”
或者,提交全部有改動的檔案:
git commit -a -m “This is your commit message for all changed files”
確保你的提交資訊能夠包含足夠的描述資訊,讓你可以搞清楚你想要回退到哪個版本。
檢視歷史
現在你需要一個檢視舊版本的方法。為了檢視提交資訊和該次提交的hash值(代表版本的一串數字)可以使用如下命令,使其以每行一個版本的方式輸出
git log –pretty=oneline
它的輸出看起來是下面這樣的,每次提交的hash值和它的提交資訊一起顯示
dbe28a0a1eba45d823d309cc3659069fc16297e3 4th version I wanted to commit
13bbf385e6d1f94c7f11a4cdfa2a7688dfdd84f8 3rd
a1696f671fb90dc8ea34645a6f851d0ab0152fc2 2nd versio
179e59467039c7a7b81f676297415c8e018542a0 first version
注意,你同樣可以使用
git log
來輸出一個更冗長的資訊,每個版本資訊佔用多行,而且你可以使用
git log –pretty=oneline — <filename>
來檢視某個具體檔案的改動。(注意第二個–後面的空格!)
恢復舊版本
恢復之前版本的檔案,你只需要使用hash值的前幾個數字(要保證足夠的區分度):
git checkout <hash> — <filename>
比如
git checkout 179e59467039 — myfile
會把我的名為myfile的檔案的內容回退到179e59467039c7a7b81f676297415c8e018542a0這個狀態(這裡是指本檔案的第一次提交版本)
檢視改動
通常你不會不先檢視一下檔案變化就回退到舊的版本!檢視檔案當前版本和歷史版本的區別,你需要指明歷史版本的hash值:
git diff —
你同樣可以比較兩個歷史版本的差別:
git diff —
還有一件事——可選項——也許會讓本文多一分鐘
也許您僅僅使用以上功能就可以受益匪淺,你會發現還有一件事是很有用的。如果你現在不想看的話,就別看了——找機會下次再看。 有時候,你不清楚有哪些檔案被改動了。你可以使用如下命令找到它們:
git status
這會生成一份檔案列表以及他們的狀態。比如,一個還沒有被’git add’ 的檔案會被顯示為untracked
;如果你想要追蹤這個檔案,就需要新增它。 在我的兩分鐘教程中,我把這個命令當做可選項的原因是,這個命令可能會有點笨拙。因為它可能會列出很多你並不關心的檔案的狀態。舉例來說,如果你使用Python語言程式設計,它會列出Python生成的編譯檔案.pyc。你肯定想解決這一問題。
為了解決這個問題,你需要在目錄下建立一個叫.gitignore
的檔案。比如你在使用Python 2.x的專案,你會希望在這個檔案中(至少)包含:
*.pyc
注意,.gitignore` 可以理解*萬用字元。如果你想要隱藏一個完整的目錄,你要在資料夾名後面加一個斜槓。例如你使用Python 3.x程式設計,所有的便以檔案都會進入一個叫__pycache__ 的資料夾,所以你需要在.gitignore中新增
__pycache__/
這就是本教程! 把這份教程放在手邊就行啦
這些就是你開始使用git所需要知道的東西,只要你有定期備份硬碟的習慣。如果你不想要記憶除了提交命令以外的其他東西,僅需要把本教程儲存進書籤,你就可以無障礙的提交,對比版本,回退到舊版本! 記住,本教程準確來講是最小化教程,讓你可以用Git做一些有用的事情。對於分支,暫存和通過遠端伺服器和他人共享程式碼這些強大的功能,請務必去看五分鐘Git教程,如果有機會甚至應該去看更長的教程!(伯樂線上注:這篇《手把手教你使用Git》更加詳細,覆蓋了這篇簡要教程很多沒有涉及的內容)
打賞支援我翻譯更多好文章,謝謝!
打賞譯者
打賞支援我翻譯更多好文章,謝謝!
任選一種支付方式