首頁 > 軟體

Android Studio設定Git及Git檔案狀態說明

2020-06-16 17:47:17

Android Studio設定Git還是比較簡單的,麻煩的是可能中間出現各種問題。如果你想了解或感興趣,請往下看。

首先你得下載Git用戶端,網址:http://git-scm.com/download/

根據需要下載相應的版本,並安裝。然後在Android Studio中指定git.exe,點選“Test”,成功則會彈出以下提示。

由於我用的是Android Studio 2.0 Preview,根本不存在“Enable Version Control Integration”提示,害我找了半天 T~T。其實有個類似的操作。

就是這個“Create Git Repository”,不然你會一直得到“...such that source detected in git but Unregistered Vcs root detected”提示。以下圖示中unregistered roots上面的兩個工程就完成了設定。

完成了這一步,往下就是為git新增remote了。我使用開源中國線上程式碼託管,先得到一個地址:https://git.oschina.net/***.git.

開啟git base,並切換到專案的根目錄,輸入以下命令

git remote add origin https://git.oschina.net/***.git

順利的話這一步就完成了。

然後在Android Studio中進行git add操作。

接著就是commit directory,最後push程式碼到遠端倉庫。

至此,一次提交結束。

預設情況下,Android Studio的專案會有這幾個資料夾:build, libs, src. 但每次提交程式碼到git,都會提示build資料夾中的眾多需要提交的檔案,其實我們根本不關心build資料夾中的檔案改動情況。怎麼辦呢?利用.gitignore把它過濾掉。

在工程根目錄建立.gitignore檔案,然後新增

build

就這麼簡單!如果你想過濾其它檔案,新增相應的規則就可以了。

儲存.gitignore檔案後,還需要執行一下以下幾個命令,以便把.gitignore檔案提交到git上。

git rm -r --cached .
git add .
git commit -m "新增.gitignore檔案"
git push origin master

“git rm -r -- cached 某個目錄”,這個命令有點狠,會把目標目錄清空,--cached .(注意:此處表示所有的檔案,有一個點);"git add .",再把所有的檔案重新加入快取(stages new and modified, without deleted)。如果你當前其它檔案已經是最新且已經push到遠端倉庫,完全可以用add .gitignore了事。

此外,還可以用以下命令代替git rm -r --cached .

git add -A

表示stages All。新手可能不太明白。好,我從git中的三種檔案狀態及其轉換說起。

---------------------------------------------------------------------------------------------

華麗的分隔線

---------------------------------------------------------------------------------------------

1、首先,我在git對應的工程目錄下建立一個test.txt,並輸入以下字串並儲存。

Hello

2、開啟git bash,輸入命令git status,檢視檔案狀態

你會看到,紅色的test.txt處於待提交狀態,這個檔案被標記為Untracked files,並建議你使用git add <file>...命令將檔案包含到待提交清單中。

3、按照提示,使用命令git add test.txt,把這個檔案加入到git的快照中,再次git status

此時的test.txt狀態變成了Changes to be committed,等待被提交。然後同時它還提示你,利用git reset HEAD <file>...可以將檔案狀態還原成為暫存狀態,也即回到Untracked files狀態。

4、開啟test.txt,向其中加入些內容,儲存。

Hello
world

其實就多了world這個字串。再次用git status檢視檔案狀態。

除了之前的“Changes to be committed”狀態,還多了“Changes not staged for commit”狀態,表明檔案已經被修改,但修改還沒有放入暫存區域,也就是沒生成快照。如果此時進行commit操作,只會提交"Hello",忽略“world”。

根據提示,如果想把最新的修改“Hello world”提交到倉庫,需要再次使用命令git add test.txt;如果想復原修改,即只想提交“Hello”,可以使用git checkout -- test.txt,再次git status,則可以看到狀態又改變了。

總結:所以,在檔案未進行commit操作之前,存在三種狀態:Untracked files, Changes not staged for commit, Changes to be committed. 每種狀態可以隨意轉換。

--------------------------------------------------------------------------------------------------------

題外話

--------------------------------------------------------------------------------------------------------

在git的後續版本中,新增了git stage作為git add的一個同義詞,這樣在語意上更符合上面的Changes not staged for commit。為什麼要增加stage呢?

1、分批提交,降低commit的粒度。

2、檔案快照,便於回退。

如果一次提交過多檔案,對後續的回滾或跟進無疑非常不利,對問題的定位也不便,體驗過估計清楚的。比如你做了兩個功能A和B,對應的檔案修改分別是a1.java, a2.java; b1.java, b2.java,提交時就可以這樣:

git stage a1.java a2.java
git commit -m "功能A"
git stage b1.java b2.java
git commit -m "功能B"

同時,每次修改後stage,任何時刻,都可以回到上一次staged的狀態:

git checkout -- test.txt

如果想從stage中刪除,則使用reset

git reset test.txt

這個命令就是git stage test.txt的反操作。

更多Android Studio相關內容可以看看以下的有用連結: 

Ubuntu 15.04下安裝Android Studio  http://www.linuxidc.com/Linux/2015-06/119318.htm 

Android Studio 2.0中的模擬器已提速50倍  http://www.linuxidc.com/Linux/2015-11/125481.htm

Ubuntu 12.04(64位元)安裝Android Studio 全過程 http://www.linuxidc.com/Linux/2013-05/84812.htm 

Android Studio v0.1嘗鮮 http://www.linuxidc.com/Linux/2013-05/84681.htm 

Android Studio使用教學 http://www.linuxidc.com/Linux/2013-05/84579.htm 

Android Studio開發指南 http://www.linuxidc.com/Linux/2013-05/84543.htm

Android Studio設定主題 和 不支援中文的問題解決方法 http://www.linuxidc.com/Linux/2013-05/84488.htm 

Android Studio 下載安裝以及不能開啟的解決辦法 http://www.linuxidc.com/Linux/2013-05/84409.htm 

Android Studio安裝使用圖文教學 http://www.linuxidc.com/Linux/2014-09/106914.htm 

Ubuntu上安裝Android Studio 1.3(谷歌 Android IDE 開發)  http://www.linuxidc.com/Linux/2015-08/121004.htm 


IT145.com E-mail:sddin#qq.com