如何使用Git Bash暂存除某一更改外的所有内容且永不提交该更改?
永久忽略已追踪文件的本地更改(永不提交)
Git命令行方法
如果想用命令行实现,核心是让Git“假装”这个文件没有修改,不会被纳入暂存或提交流程:
- 执行命令:
git update-index --assume-unchanged <你的文件路径>
比如要忽略config.ini的更改,就输git update-index --assume-unchanged config.ini - 如果之后需要恢复追踪该文件的更改,执行:
git update-index --no-assume-unchanged <你的文件路径>
注意:这个设置是本地仓库独有的,不会同步到远程,换电脑或重新克隆仓库后需要重新执行命令。如果远程仓库里该文件有更新,拉取时可能会触发冲突,需要手动处理。
SourceTree GUI操作方法
你提到的SourceTree确实可以直观实现:
- 打开SourceTree,进入目标仓库的“文件状态”页面
- 在文件列表里找到你要永久忽略更改的文件
- 右键点击该文件,选择「假设未更改」(Assume Unchanged)
- 之后这个文件的本地修改就不会出现在“待提交”的文件列表里,也不会被误提交
如果之后需要取消这个设置,同样右键该文件,选择「取消假设未更改」即可。
另外补充:如果你的需求是从未追踪过该文件,想永久不让Git识别它,才需要修改.gitignore文件,但你是已经在仓库里的文件改了不想提交,上面的方法才适用。
内容的提问来源于stack exchange,提问作者Bhavika Khare
相关产品推荐
相关产品推荐

