本節書摘來自異步社群《git學習指南》一書中的第2章,第2.2節,作者: 【德】rené preißel(普萊貝爾) , bjørn stachmann(斯拉赫曼)著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視
在這裡,我們建議你最好能為接下來的git測試單獨開辟一個項目。總之應先從一個簡單的小項目開始。在我們這個小小的示例項目中,first-steps目錄下隻有兩個文本檔案,如圖2.1所示。
圖2.1 我們的示例項目
在開始擺弄這個玩具項目之前,我們建議你最好先做一個備份!盡管在git中,想要造成永久性的删除或破壞也不是件容易的事情,而且每當你要做某些“危險”動作的時候,git通常也會發出相應的警告消息。但是,有備無患總是好的。
2.2.1 建立版本庫
現在,我們首先需要建立一個版本庫,用于存儲該項目本身及其曆史。為此,我們需要在該項目目錄中使用init指令。對于一個帶版本庫的項目目錄,我們通常稱之為工作區。
init指令會在上述目錄中建立一個名為.git的隐藏目錄,并在其中建立一個版本庫。但請注意,該目錄在windows資料總管或mac finder中可能是不可見的。
圖2.2 本地版本庫所在的目錄
2.2.2 首次送出
接下來,我們需要将foo.txt和bar.txt這兩個檔案添加到版本庫中去。在git中,我們通常将項目的一個版本稱之為一次送出,但這要分兩個步驟來實作。第一步,我們要先用add指令來确定哪些檔案應被包含在下次送出中。第二步,再用commit指令将修改傳送到版本庫中,并賦予該送出一個散列值以便辨別這次新送出。在這裡,我們的散列值為2f43cd0,但可能會有所不同,因為該值取決于檔案内容。
2.2.3 檢查狀态
現在,我們來修改一下foo.txt檔案的内容,先删除bar.txt檔案,再添加一個名為bar.html的新檔案。然後,status指令就會顯示出該項目自上次送出以來所發生的所有修改。請注意,新檔案bar.html在這裡被标示成了未跟蹤狀态,這是因為我們還沒有用add指令将其注冊到版本庫。
如果我們還想看到更多細節性的内容,也可以通過diff指令來顯示其每個被修改的行。當然。有很多人可能會覺得diff的輸出是個非常難讀的東西。幸運的是,在這一領域,我們有許多工具和開發環境可用,它們可以将這一切顯示得更為清晰(見圖2.3)。
圖2.3 圖形工具(kdiff3)中的diff報告
2.2.4 送出修改
接下來,所有的修改都必須要先被歸檔成一次新的送出。我們要對修改過的檔案和新檔案執行add指令,并對要删除的檔案使用rm指令。
現在再次調用status指令,我們會看到所有的修改已經被納入了下一次送出中。
然後用commit指令送出這些修改。
2.2.5 顯示曆史
log指令可用來顯示項目的曆史,所有送出都會按時間順序被降序排列出來。