1. 程式人生 > >Android Studio中 .gitignore配置

Android Studio中 .gitignore配置

前言

在用 Git 進行程式碼管理的過程中,我們會發現後新增進去的 .gitignore 檔案,或者是中途修改了.gitignore 檔案後,.gitignore 檔案並沒有生效,需要清楚.track快取和強制.track來解決問題。如果我們在第一次提交的時候,忘記新增 .gitignore 檔案或者在首次添加了 .gitignore 檔案之後,又對 .gitignore 檔案進行了修改,你會發現這兩種情況下,.gitignore 檔案是不生效的!

.gitignore 使用

我們第一次建立專案和上傳專案的時候,是沒有.gitignore檔案的,我們需要自己配置,這裡講的是Android Studio中怎麼使用.gitignore,關於第一次如何上傳專案到gitlab,請參考

gitlab入門篇
這裡寫圖片描述
從以上提交的結果可以看出,沒有新增 Android 工程應有的 .gitignore 檔案,我們可以去https://github.com/github/gitignore下載一個,也可以拷貝之前的專案的.gitignore。然後我們將此 .gitignore 檔案新增到gitlab倉庫中。
這裡寫圖片描述
注:如果你發現你添加了 .gitignore 檔案之後,.gitignore 檔案的變化沒有被 track,那麼你需要去 SourceTree 的全域性 .gitignore_global 檔案中檢視 .gitignore 檔案是不是被聲明瞭不被 track的。
檢視gitignore_global

一次選擇工具–選項–git–Global Ignore List
接下來我們修改一個檔案在嘗試提交,就會發現沒有之前那麼多了。
這裡寫圖片描述
從上圖中我們可以看到 .java 檔案編譯產生的 .class 檔案依然被 track。由於快取的原因,當在提交之後新增 .gitignore 檔案,或者在 .gitignore 檔案中增加或者刪除,都是無效的。
那麼我們需要怎麼做呢,我們需要清除track的快取,首先我們可以通過 SourceTree 介面中的 Terminal 開啟 Git 命令列終端。
這裡寫圖片描述
輸入清除命令

git rm -r –cached .

新增更改變化

git add
.

備註:此命令,你可以通過 SourceTree 這樣的視覺化客戶端來通過勾選 unstaged files 來操作。接下來輸入命令:

git commit -m

操作完上面的步驟之後我們就會看到。
這裡寫圖片描述
然後我們終於看到.gitignore 檔案生效了。
這裡寫圖片描述

其他

新增檔案
實際應用中,我們往往隨著業務的增加,會不斷的增加檔案,比如我們天津 .txt 檔案,不讓 .txt 檔案被 track,我們還是按照剛才的步驟來操作即可!
這裡寫圖片描述
我們就會發現現在sourcetree提交的時候就會忽略掉這種檔案。
這裡寫圖片描述
刪除檔案
比如,我們現在移除 .class 型別的檔案,那麼我們需要怎麼做呢?
這裡寫圖片描述
對於以上情況,我們需要用到強制提交的命令:

git add -f *.class

我們修改一下 .java 檔案然後儲存,看看產生的編譯檔案 .class 是否再次被 track,答案是肯定的!
這裡寫圖片描述

說明:Git 程式碼管理中,我們在沒有新增 .gitignore 檔案的前提下提交了程式碼之後再提交 .gitignore 檔案,或者是中途新增某一檔案型別到 .gitignore 檔案中,需要通過以下命令列的方式,讓 .gitignore 檔案生效:

git rm -r –cached .
git add .
git commit -m “Refresh adding .gitignore file.”

如果是中途從 .gitignore 檔案中移除某一檔案型別,想要這個檔案型別重新被 track,需要通過以下命令列的方式,讓 .gitignore 檔案生效:

git add -f *.class
git commit -m "說明"

最後附上android 常見的一段.gitignore:

#built application files
*.apk
*.ap_


# files for the dex VM
*.dex


# Java class files
*.class


# generated files
bin/
gen/


# Local configuration file (sdk path, etc)
local.properties


# Windows thumbnail db
Thumbs.db


# OSX files
.DS_Store


# Eclipse project files
.classpath
.project


# Android Studio
.idea
#.idea/workspace.xml - remove # and delete .idea if it better suit your needs.
.gradle
build/


# Signing files
.signing/


# User-specific configurations
.idea/libraries/
.idea/workspace.xml
.idea/tasks.xml
.idea/.name
.idea/compiler.xml
.idea/copyright/profiles_settings.xml
.idea/encodings.xml
.idea/misc.xml
.idea/modules.xml
.idea/scopes/scope_settings.xml
.idea/vcs.xml
*.iml