【问题标题】:Git Ignore current changesGit忽略当前更改
【发布时间】:2016-08-28 05:53:15
【问题描述】:

我正在为 android 构建一个内核,并且我已经设置了 git,因此它会忽略所有生成的 .o 文件。我在构建之前进行了第一次提交(更改了一些 selinux 的东西),结果很好。

我构建了我的内核,当我尝试运行另一个提交时,它列出了在构建期间更改的数千个 .c.h 文件,我真的不想提交,因为它是不必要的,我显然不能排除这些文件,因为如果我稍后修改这些文件,我将无法提交它们。

关于如何忽略在构建期间修改的所有文件的任何想法?

【问题讨论】:

  • 为什么在构建过程中修改了您的源代码文件?

标签: git


【解决方案1】:

git update-index --assume-unchanged file

来自git update-index的文档:

指定此标志时,不会更新为路径记录的对象名称。相反,此选项设置/取消设置路径的“假定不变”位。当“假设不变”位打开时,用户承诺不会更改文件并允许 Git 假设工作树文件与索引中记录的内容匹配

要撤消并重新开始跟踪,
git update-index --no-assume-unchanged file

【讨论】:

  • 真的很好,但是当来自另一个用户的更改时,Git 会覆盖文件和我的更改(假设我已经手动更改了文件)还是尝试合并?
【解决方案2】:

我的做法是在您的项目的根目录中使用一个漂亮、简单的git checkout -- .。这样做是将所有跟踪文件重置为HEAD提交时的状态。

【讨论】:

  • 如果你想“重置所有跟踪的文件” 那么为什么不简单地git reset --hard
【解决方案3】:

也许写你想忽略ini .git/info/exclude的文件模式?

参考Few questions with GIT, possible to have custom .gitignore? Read only access?

这样您就不必在.gitignore 中附加忽略规则,也不必忽略您要忽略的文件。

更多信息,您可以查看 gitignore.io 生成的忽略规则:https://www.gitignore.io/api/android。附在下面:

# Created by https://www.gitignore.io/api/android

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

# 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/libraries

# Keystore files
*.jks

### Android Patch ###
gen-external-apklibs

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 2013-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多