git临时忽略已追踪文件

参考链接

背景

使用 git, 日常开发时经常会修改一些项目中已经追踪的配置文件,但是并不想提交更改。通常需要在每次提交时排除掉对应的文件,很麻烦。并且稍不注意就会提交到远端仓库里,影响到其他人。

解决方案

使用git update-index命令,以下以config/sample.json为例:

  • 忽略文件修改:git update-index --skip-worktree config/sample.json
  • 取消忽略文件修改:git update-index --skip-worktree config/sample.json
  • 临时忽略(如果pull文件后,会被取消忽略):git update-index --assume-unchanged config/sample.json
  • 取消临时忽略:git update-index --no-assume-unchanged config/sample.json

相关概念

worktree

worktree允许 git 在仓库中创建多个工作树,从而可以在不同的工作树中进行不同的工作。每个工作树都有自己的 HEAD 指向,可以进行独立的操作。例如: 提交、修改、切换分支等,不会影响其他工作树。
几个基本操作:

  • 创建:git worktree add <path>
  • 列出:git worktree list
  • 删除:git worktree remove <path>
  • 切换:cd到相应path下即可

需要注意,每个 worktree 都会占用磁盘空间。

posted @ 2023-02-22 12:49  small_town  阅读(213)  评论(0)    收藏  举报