为什么 gitignore 中的文件会在 android studio 编译后被修改?
why file in gitignore will be modified after android studio compile?
我有一个名为 VersionUtil 的文件并将其设置为 git忽略。
在git忽略文件中,我有
# Git info
app/src/main/java/com/test/util/VersionUtil.java
之前我运行在android工作室的项目,VersionUtil.java里面有一行代码:
public static final String COMMIT_INFO = "info".
I 运行 git status 返回
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 将不会开始忽略已经跟踪的文件。
引用手册页(强调我的):
A gitignore file specifies intentionally untracked files that Git should ignore. Files already tracked by Git are not affected [...].
[...]
The purpose of gitignore files is to ensure that certain files not tracked by Git remain untracked.
To ignore uncommitted changes in a file that is already tracked, use git update-index --assume-unchanged
.
To stop tracking a file that is currently tracked, use 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'
我有一个名为 VersionUtil 的文件并将其设置为 git忽略。 在git忽略文件中,我有
# Git info
app/src/main/java/com/test/util/VersionUtil.java
之前我运行在android工作室的项目,VersionUtil.java里面有一行代码:
public static final String COMMIT_INFO = "info".
I 运行 git status 返回
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 将不会开始忽略已经跟踪的文件。
引用手册页(强调我的):
A gitignore file specifies intentionally untracked files that Git should ignore. Files already tracked by Git are not affected [...].
[...]
The purpose of gitignore files is to ensure that certain files not tracked by Git remain untracked.
To ignore uncommitted changes in a file that is already tracked, use
git update-index --assume-unchanged
.To stop tracking a file that is currently tracked, use 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'