Shu*_*Gao 1 git gitignore git-stage
我有一个名为 VersionUtil 的文件并将其设置到 gitignore 中。在 gitignore 文件中,我有
# Git info
app/src/main/java/com/test/util/VersionUtil.java
Run Code Online (Sandbox Code Playgroud)
在android studio中运行项目之前,VersionUtil.java中有一行代码:
public static final String COMMIT_INFO = "info".
Run Code Online (Sandbox Code Playgroud)
我运行 git status 并返回
Your branch is up-to-date with 'origin/develop'.
Run Code Online (Sandbox Code Playgroud)
但是,在我运行该项目后,VersionUtil.java 发生了变化。那一行是:
public static final String COMMIT_INFO = "6a604 XXXXX ".
Run Code Online (Sandbox Code Playgroud)
返回的 git 状态
modified: app/src/main/java/com/test/util/VersionUtil.java
Run Code Online (Sandbox Code Playgroud)
你们有什么想法吗?为什么 gitignore 中的文件仍在被跟踪?任何帮助,将不胜感激。
一个.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
Run Code Online (Sandbox Code Playgroud)
或者,您可以删除该文件(物理删除或仅从版本控制中删除)。之后,该.gitignore文件应该是有效的:
git rm --cached app/src/main/java/com/test/util/VersionUtil.java
git commit -m'Remove VersionUtil.java from version control'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |