为什么gitignore中的文件在android studio编译后会被修改?

为什么gitignore中的文件在android studio编译后会被修改?,git,gitignore,git-stage,Git,Gitignore,Git Stage,我有一个名为VersionUtil的文件,并将其设置为gitignore。 在gitignore文件中,我有 # Git info app/src/main/java/com/test/util/VersionUtil.java 在android studio中运行该项目之前,VersionUtil.java中有一行代码: public static final String COMMIT_INFO = "info". 我运行git状态,它返回 Your branch is up-to-da

我有一个名为VersionUtil的文件,并将其设置为gitignore。 在gitignore文件中,我有

# Git info
app/src/main/java/com/test/util/VersionUtil.java
在android studio中运行该项目之前,VersionUtil.java中有一行代码:

public static final String COMMIT_INFO = "info".
我运行git状态,它返回

Your branch is up-to-date with 'origin/develop'.
但是,在我运行项目之后,VersionUtil.java被更改了。这条线是:

public static final String COMMIT_INFO = "6a604 XXXXX ".
返回git状态

modified:   app/src/main/java/com/test/util/VersionUtil.java
你们知道吗?为什么gitignore中的文件仍被跟踪?任何帮助都将不胜感激。

gitignore文件只影响未跟踪的文件。已跟踪的文件不受.gitignore文件的任何影响。这意味着,如果一个文件已经处于版本控制之下,然后添加到.gitignore之后,Git将不会开始忽略已经跟踪的文件

引用手册页的重点:

gitignore文件指定Git应该忽略的故意未跟踪的文件。Git已经跟踪的文件不受影响[…]

[……]

gitignore文件的目的是确保Git未跟踪的某些文件保持未跟踪状态

要忽略已跟踪的文件中未提交的更改,请使用git update index-假定未更改

要停止跟踪当前跟踪的文件,请使用git rm-cached

建议的第二种选择可能是你的出路:

git update-index --assume-unchanged app/src/main/java/com/test/util/VersionUtil.java
或者,您可以从物理上或仅从版本控制中删除该文件。之后,.gitignore文件应生效:

git rm --cached app/src/main/java/com/test/util/VersionUtil.java
git commit -m'Remove VersionUtil.java from version control'
.gitignore文件只影响未跟踪的文件。已跟踪的文件不受.gitignore文件的任何影响。这意味着,如果一个文件已经处于版本控制之下,然后添加到.gitignore之后,Git将不会开始忽略已经跟踪的文件

引用手册页的重点:

gitignore文件指定Git应该忽略的故意未跟踪的文件。Git已经跟踪的文件不受影响[…]

[……]

gitignore文件的目的是确保Git未跟踪的某些文件保持未跟踪状态

要忽略已跟踪的文件中未提交的更改,请使用git update index-假定未更改

要停止跟踪当前跟踪的文件,请使用git rm-cached

建议的第二种选择可能是你的出路:

git update-index --assume-unchanged app/src/main/java/com/test/util/VersionUtil.java
或者,您可以从物理上或仅从版本控制中删除该文件。之后,.gitignore文件应生效:

git rm --cached app/src/main/java/com/test/util/VersionUtil.java
git commit -m'Remove VersionUtil.java from version control'

欢迎来到StackOverflow!我冒昧地删除了github api标记并添加了git标记,因为这个问题与github或其api没有任何连接。欢迎使用StackOverflow!我冒昧地删除了github api标记并添加了git标记,因为这个问题与github或其api没有任何联系。Helmbert,您好,谢谢您的回答。这是否意味着如果一个文件已经被推送到github,gitignore将不会影响它?基本正确。被推到Github,或者其他任何地方都不是关键点。一旦文件被添加到提交中,就会对其进行跟踪。记住,提交在Git!中是本地的!。如果您想阅读Git存储库中文件的不同状态,我可以从专业Git书籍中推荐。嗨,Helmbert,谢谢您的回答。这是否意味着如果一个文件已经被推送到github,gitignore将不会影响它?基本正确。被推到Github,或者其他任何地方都不是关键点。一旦文件被添加到提交中,就会对其进行跟踪。记住,提交在Git!中是本地的!。如果您想了解Git存储库中文件的不同状态,我可以从ProGit书籍中推荐。