如何使git“忘记”已跟踪但现在位于.gitignore中的文件?

edqdpe6u  于 2021-09-08  发布在  Java
关注(0)|答案(17)|浏览(394)

有一个文件正在被跟踪 git ,但现在该文件位于 .gitignore 列表
但是,该文件一直显示在中 git status 编辑之后。你是怎么强迫的 git 完全忘记它?

hxzsmxv2

hxzsmxv216#

git update-index 这项工作是否适合我:

git update-index --assume-unchanged <file>

注意:此解决方案实际上独立于 .gitignore 因为gitignore仅适用于未跟踪的文件。

更新,更好的选择

因为这个答案已经发布,所以创建了一个新的选项,这应该是首选。你应该使用 --skip-worktree 这适用于用户不想再提交和保留的已修改跟踪文件 --assume-unchanged 以防止git检查大型跟踪文件的状态。看见https://stackoverflow.com/a/13631525/717372 有关更多详细信息。。。

git update-index --skip-worktree <file>

取消

git update-index --no-skip-worktree <file>
ahy6op9u

ahy6op9u17#

下面的一系列命令将从git索引(不是从工作目录或本地repo)中删除所有项,然后更新git索引,同时考虑git忽略。ps.index=cache
第一:

git rm -r --cached .
git add .

然后:

git commit -am "Remove ignored files"

或一个班轮:

git rm -r --cached . && git add . && git commit -am "Remove ignored files"

相关问题