随笔:记录一个git小妙招,修改本地文件不提交到远端,同时保持文件存在远端

如果你希望本地修改 src/local 文件夹中的内容而不影响远端仓库中的文件,同时保持这些文件在远端仓库中存在,你可以使用 Git 的 assume-unchangedskip-worktree 属性来实现。

使用 assume-unchanged

assume-unchanged 命令告诉 Git 假设文件没有变化,从而忽略本地对这些文件的修改。

  1. 设置 assume-unchanged

    git update-index --assume-unchanged src/local/*
    

    这将告诉 Git 假设 src/local 文件夹中的所有文件没有变化。

  2. 取消 assume-unchanged(如果需要):

    如果以后你想让 Git 开始跟踪这些文件的变化,可以使用以下命令:

    git update-index --no-assume-unchanged src/local/*
    

使用 skip-worktree

skip-worktree 属性与 assume-unchanged 类似,但更适合用于忽略本地修改而不影响远端的情况。

  1. 设置 skip-worktree

    git update-index --skip-worktree src/local/*
    

    这将告诉 Git 跳过 src/local 文件夹中的所有文件的工作树检查。

  2. 取消 skip-worktree(如果需要):

    如果以后你想让 Git 开始跟踪这些文件的变化,可以使用以下命令:

    git update-index --no-skip-worktree src/local/*
    

示例操作

假设你有一个文件 src/local/config.js,你希望本地修改这个文件但不上传到远端:

  1. 设置 skip-worktree

    git update-index --skip-worktree src/local/config.js
    
  2. 验证设置:

    你可以用以下命令来验证:

    git ls-files -v | grep '^S'
    

    这将列出所有被标记为 skip-worktree 的文件。

  3. 取消 skip-worktree(如果需要):

    git update-index --no-skip-worktree src/local/config.js
    

通过以上步骤,你可以在本地修改 src/local 文件夹中的文件,而不影响远端仓库中的文件。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容