參考:《第一行代碼 Android》 郭霖著
在上一篇的Git博文裡,我們簡單學習了Git比較基本的用法,比如安裝、建立代碼倉庫以及送出本地代碼等,接下來我們一起來學習更多的Git技能吧。
一、忽略檔案
在上篇文章末,不知道各位讀者朋友有沒有發現我們使用git add .指令添加并通過git commit指令送出後,AlarmClock項目下所有檔案全部被加入到版本控制當中,這樣做有必要麼?對Android稍微了解的朋友們應該知道android項目下bin目錄和gen目錄下的檔案都是會自動生成的,如果将這部分檔案添加到版本控制當中,有可能會對檔案的自動生成造成影響,是以我們應該想辦法在送出時将這部分不需要添加到版本控制當中去的的檔案或目錄剔除掉。歡呼吧!Git為我們提供了這一功能—— .gitignore檔案。
很簡單,我們隻需在項目的根目錄下建立一個.gitignore檔案,然後在裡面聲明要忽略的檔案或者檔案夾就可以。不過此處會有個小麻煩,因為是點開頭,沒有檔案名,沒辦法直接在windows目錄下直接建立,必須在Git Bash下按照linux的方式來建立.gitignore檔案,使用touch .gitignore指令,如下圖所示,可以看到項目的目錄下多了一個.gitignore檔案。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiI0NXYFhGd192UvwVe0lmdhJ3ZvwFM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lcp3aU9Ee4cVWpRWbiZHeyIGasdUZuxGWlZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TOxgzN0QzM2EzMyETM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
注意:一定要在對應項目的目錄下使用touch .gitignore指令。,如圖上黃線圈起來部分所示。
這下我們使用git add .及git commit -m “First commit”,會發現bin和gen這兩個檔案沒有被送出到版本控制當中,如下圖所示:
二、檢視修改内容
在實際項目中,我們代碼送出之後,後續可能還會對項目不斷進行維護,添加新功能等,理想情況下是每當完成一小塊功能,就執行一次送出。但是如果某個功能的實作牽扯到的代碼量比較多時,寫到後面我們可能已經忘記前面修改過的内容了。别緊張,别擔心,Git全部幫我們記着呢!簡直是強大有木有!!!
檢視檔案修改情況隻需使用status指令即可,在項目的根目錄下輸入如下指令,如下圖所示:
git status
大家可以看到Git提示目前項目中沒有任何可以送出的檔案,因為之前我們剛剛才送出過。接下來我對AlarmClock項目中的代碼稍作一下改動,我将MainActivity.java中calender.add(Calendar.SECOND, 10);修改為
calender.add(Calendar.SECOND, 20);這次我們再來看下結果:
如圖中黃線部分所示,Git提醒我們MainActivity.java這個檔案已發生改變,如果我們想要看具體更改的内容,就要使用git diff 指令,如下圖所示:
如圖中黃線所标,“-”代表删除的部分,“+”代表添加的部分,我們可以明顯看到10被修改為20了。
注意:使用git diff指令可以檢視到所有檔案的更改内容,如果隻想檢視MainActivity.java這一檔案的更改内容,則可以使用如下指令:
git diff src/com/example/alarm/MainActivity.java
三、撤銷未送出的修改
有時我們在寫代碼時,可能不小心會将原本正常的功能該出問題,遇到這種情況,如果我們的修改還沒有被add,可以使用git checkout 指令撤銷修改,然後再用git status指令檢視修改是否成功,如下圖所示:
可以看到,目前項目中沒有任何可送出的檔案,說明撤銷操作确實是成功了。
如果我們把修改已經通過git add 指令進行了添加,此時隻通過執行一遍checkout指令是無法撤銷掉所修改的内容的,有興趣的可以試一下,此處我不再具體展示了。那這種情況下應該怎麼辦呢?不要擔心,還是有解決·辦法滴。我們應該首先對其取消添加,然後再撤回送出即可。取消添加使用reset指令,用法如下所示:
git reset HEAD src/com/example/alarm/MainActivity.java
然後再運作git status指令,就會發現MainActivity.java這個檔案重新變回未添加狀态,此時就可以使用checkout指令對修改的内容進行撤銷了,如下圖所示:
四、檢視送出記錄
當AlarmClock項目開發了幾個月之後,我們可能已經做過上百次送出了,此時我們可能已經忘記了每次送出都修改過哪些内容。不過别擔心,Git一直都幫我們記着呢,使用git log指令檢視曆史送出資訊,如下圖所示:
由于我隻送出過兩次,是以隻看到了兩條記錄。當送出記錄很多時,如果我們隻想檢視其中一條記錄,可以在指令中指定該記錄的id,并加上-1參數表示我們隻想看一條記錄,如果想檢視這條送出記錄修改了什麼内容,可以在指令中加入-p參數,指令如下
git log 55340fce6b2200fe0bacbb219386a7f3e267c801 -1 -p
查詢出的結果如下圖所示:
本此Git的内容先講到這裡,鑒于主要是給入門級的朋友看的,是以寫的比較詳細或者說比較啰嗦,大家見諒,下一篇文章将給大家介紹一下Git的分支及遠端版本庫等知識。希望大家多多支援,大家一起進步吧!!!
下一篇:Git使用簡介三(入門級)