为什么在android工作室编译后将修改gitignore中的文件?

时间:2015-04-20 21:51:01

标签: 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-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中的文件仍在被跟踪?任何帮助将不胜感激。

1 个答案:

答案 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'