如何从提交清单 Android Studio 中删除一些文件?

Posted

技术标签:

【中文标题】如何从提交清单 Android Studio 中删除一些文件?【英文标题】:How to remove some files from commit checklist Android Studio? 【发布时间】:2019-11-28 01:58:33 【问题描述】:

我想提交我在我的 AS 项目中所做的更改。但我看到更改列表包含release 文件夹:

这意味着我将提交可行的apk 文件和一些在构建安装程序期间生成的配置文件。我也可以取消勾选这些文件,但是当我下次尝试提交时,我会再次看到这些文件。也许我可以从我的更改列表中完全删除这些文件,并防止它在下次出现。我认为这是因为我在终端尝试了一些命令,一个命令可以添加这些文件,我认为是:

git commit --am

那么,我怎样才能在不破坏所有项目的情况下解决这个问题呢?

更新:

我可以用命令解决我的问题吗:

git rm --app-release.apk?

【问题讨论】:

您可以将其添加到未版本控制或 git 忽略文件中 @ManojPerumarath,我该怎么做?在终点站? 我不知道怎么用命令,用android studio工具很容易做到 只删除release文件夹,生成签名apk时,选择不同的文件夹。 【参考方案1】:

第 1 步:使用以下命令从暂存区删除文件

git 重置 HEAD 文件

check this

similar post

第 2 步:将 release 文件夹和其他生成的文件添加到您的 .gitignore

参考:

【讨论】:

【参考方案2】:

如果你有一个 gitignore 文件,那么添加这一行

# Built application files
*.apk
*.ap_
*.aab

# Files for the ART/Dalvik VM
*.dex

# Java class files
*.class

# Generated files
bin/
gen/
out/

# Gradle files
.gradle/
build/

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

# Proguard folder generated by Eclipse
proguard/

# Log Files
*.log

# Android Studio Navigation editor temp files
.navigation/

# Android Studio captures folder
captures/

# IntelliJ
*.iml
.idea/workspace.xml
.idea/tasks.xml
.idea/gradle.xml
.idea/assetWizardSettings.xml
.idea/dictionaries
.idea/libraries
.idea/caches

# Keystore files
# Uncomment the following lines if you do not want to check your keystore 
files in.
#*.jks
#*.keystore

# External native build folder generated in Android Studio 2.2 and later
.externalNativeBuild

# Google Services (e.g. APIs or Firebase)
google-services.json

# Freeline
freeline.py
freeline/
freeline_project_description.json

# fastlane
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots
fastlane/test_output
fastlane/readme.md

或在项目的根文件夹中创建一个 .gitignore 文件

【讨论】:

它对我不起作用 :( 我备份了 .gitignore 文件并创建了一个具有相关文件类型的新文件,现在我有太多未版本化的文件 什么是长 gitignore 文件?我也尝试在设置中添加一些文件,但它也没有帮助我 编辑文件后是否必须使cashes/restart AS失效? @AndrewGoroshko 不需要重建 我也有类似的想法,但我设法仅删除了 git rm -r --cached path 的文件【参考方案3】:

我建议使用https://www.gitignore.io/ 为您的android 项目生成.gitignore 文件并将其放在项目的根文件夹中。

https://www.gitignore.io/api/android 为您的 android 项目提供了先机(根据您的要求进行修改。但在大多数情况下,这应该是开箱即用的解决方案)。

另外,补充一点。这是git 的预期行为,与android studio/android 无关。

【讨论】:

【参考方案4】:

您需要将这些文件添加到您的 android 工作室的版本控制区域下的忽略文件中。导航到

Open File -> Settings -> Version Control -> Ignored Files. 

添加您不想提交或包含的文件。与建议使用 .gradle 工具的其他答案类似的另一种方法。

【讨论】:

我试过了,但没有帮助 :( 我仍然看到这些文件 @AndrewGoroshko 我认为您已经将这些文件添加到了 git。您必须先删除它们,然后再添加到忽略文件中。【参考方案5】:

第一件事:

您可以通过终端通过以下命令将 .gitignore 文件添加到您的存储库:

    在终端中,导航到 Git 存储库的位置。 输入touch .gitignore 创建一个.gitignore 文件。

其次,你要注意,如果你已经有一个文件签入并且你想忽略它,如果你以后添加规则,Git 不会忽略该文件。在这些情况下,您必须先取消跟踪文件,方法是在终端中运行以下命令:

$ git rm --cached FILENAME

更多信息请关注https://help.github.com/en/articles/ignoring-files

【讨论】:

假设如果我有 10 个分支,并且我想从所有分支以及 hsitory 中删除文件。有可能吗? 当然!有可能的。目前,我不记得该怎么做。一个小小的搜索就会让你离开......@AmanVerma【参考方案6】:

首先将文件/文件夹添加到您的 .gitignore 文件中(在您的情况下,是应用级别的,而不是项目级别的)

转到 Android Studio 中的终端并输入以下命令:

git rm -r the-directory-to-remove 在这种情况下,您的the-directory-to-remove 是发布文件夹。

上述命令将从git中删除指定目录。

git commit -m "Delete release folder"

上述命令提交更改,您可以将“删除发布文件夹”更改为您喜欢的任何内容。

git push origin <your-git-branch>

上述命令将更改推送到 Github(或 BitBucket)。

现在,如果您只想从 Github/BitBucket 中删除文件,而不是从整个 git 文件系统中删除文件,请运行 git rm -r --cached myFolder 而不是第一个命令。

【讨论】:

以上是关于如何从提交清单 Android Studio 中删除一些文件?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 android studio 从应用程序中的内部或外部存储(SD 卡)读取文件?

清单合并失败,Android Studio 中出现多个错误

清单合并失败并出现多个错误:Android Studio Java

Android Studio 两种具有不同清单文件的风格

清单合并失败:针对 Android 12 的应用程序 - Android Studio 错误 [重复]

片段中的意图不断与清单崩溃问题,android studio