我有一个名为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中的文件仍在被跟踪?任何帮助将不胜感激。
答案 0 :(得分:3)
.gitignore
文件仅影响未跟踪的文件。已经跟踪的文件不受.gitignore
文件的任何影响。这意味着如果文件已经受版本控制,然后再添加到.gitignore
以后,则Git将不会开始忽略已经跟踪的文件。
引用手册页(强调我的):
gitignore文件指定Git应忽略的故意未跟踪文件。 Git已经跟踪的文件不受影响 [...]。
[...]
gitignore文件的目的是确保Git未跟踪的某些文件未被跟踪。
要忽略已跟踪的文件中未提交的更改,请使用
git update-index --assume-unchanged
。要停止跟踪当前跟踪的文件,请使用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'