我把以前由 Git 跟踪的文件放在.gitignore 列表中. 但是,文件在编辑后仍然显示在 git 状态。
当前回答
特别是对于基于 IDE 的文件,我使用以下文件:
例如,对于 slnx.sqlite 文件,我刚刚完全解除它如下:
git rm {PATH_OF_THE_FILE}/slnx.sqlite -f
git commit -m "remove slnx.sqlite"
请记住,其中一些文件存储一些本地用户设置和项目偏好(类似于您打开的文件)。所以每次您浏览或在您的 IDE 中进行一些更改,该文件会被更改,因此它会检查并显示为未订购的更改。
其他回答
在我的情况下,我需要在.gitignore 文件中插入 ".envrc" 。
然后我用了:
git update-index --skip-worktree .envrc
git rm --cached .envrc
文件已被删除。
然后我再次承诺,说文件已被删除。
但当我使用 git log -p 命令时,文件的内容(这是 Amazon S3 的秘密认证)显示已删除的内容,我不想在 Git 存储库的历史上显示此内容。
然后我用了这个命令:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch .envrc' HEAD
我再也不会看到内容了。
下面的命令系列将从 Git 索引中删除所有项目(不是工作目录或本地存储库),然后更新 Git 索引,同时遵守 Git 忽略。
首先:
git rm -r --cached .
git add .
然后:
git commit -am "Remove ignored files"
或者作为一个单线:
git rm -r --cached . && git add . && git commit -am "Remove ignored files"
如果有人在Windows上有艰难的时间,你想忽略整个文件夹,请在文件探测器上转到所需的“文件夹”,右键单击并进行“Git Bash Here”(Git for Windows 应该安装)。
执行此命令:
git ls-files -z | xargs -0 git update-index --assume-unchanged
移动或复制文件到一个安全的位置,所以你不会失去它。
文件仍然会出现,如果你转到以前的任务之一,或另一个分支,它没有被删除. 但是,在所有未来的任务,你不会再看到文件. 如果文件在 Git 忽略,那么你可以将其返回文件夹, Git 不会看到它。
要总结一下:
您的应用程序正在寻找一个被忽略的文件 config-overide.ini 并使用它在承诺的文件 config.ini (或替代,寻找 ~/.config/myapp.ini,或 $MYCONFIGFILE) 承诺文件 config-sample.ini 并忽略文件 config.ini,有脚本或类似的复制文件如有必要。
推荐文章
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- Git错误:遇到7个文件应该是指针,但不是
- GitHub克隆与OAuth访问令牌
- 移动(或“撤销”)最后一个git提交到非暂存区域