有一个文件正在被跟踪 git ,但现在该文件位于 .gitignore 列表但是,该文件一直显示在中 git status 编辑之后。你是怎么强迫的 git 完全忘记它?
git
.gitignore
git status
hxzsmxv216#
git update-index 这项工作是否适合我:
git update-index
git update-index --assume-unchanged <file>
注意:此解决方案实际上独立于 .gitignore 因为gitignore仅适用于未跟踪的文件。
因为这个答案已经发布,所以创建了一个新的选项,这应该是首选。你应该使用 --skip-worktree 这适用于用户不想再提交和保留的已修改跟踪文件 --assume-unchanged 以防止git检查大型跟踪文件的状态。看见https://stackoverflow.com/a/13631525/717372 有关更多详细信息。。。
--skip-worktree
--assume-unchanged
git update-index --skip-worktree <file>
取消
git update-index --no-skip-worktree <file>
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"
17条答案
按热度按时间hxzsmxv216#
git update-index
这项工作是否适合我:注意:此解决方案实际上独立于
.gitignore
因为gitignore仅适用于未跟踪的文件。更新,更好的选择
因为这个答案已经发布,所以创建了一个新的选项,这应该是首选。你应该使用
--skip-worktree
这适用于用户不想再提交和保留的已修改跟踪文件--assume-unchanged
以防止git检查大型跟踪文件的状态。看见https://stackoverflow.com/a/13631525/717372 有关更多详细信息。。。取消
ahy6op9u17#
下面的一系列命令将从git索引(不是从工作目录或本地repo)中删除所有项,然后更新git索引,同时考虑git忽略。ps.index=cache
第一:
然后:
或一个班轮: