忽略本地 git 存储库中文件的更改

Ignore changes in the files, which are in the git repository, locally

为了使我的项目在本地运行,我必须更改一个文件。但是这个文件在远程必须保持不变。在使用 git statusgit addgit stash 命令时,如何使 git 忽略此文件中的更改?

我尝试了什么:

1.

git update-index --assume-unchanged filename

使其与 'git status' 和 'git add' 一起工作,但 'git stash'+'git stash pop' 将文件恢复到原始状态,破坏了我的本地设置。

2。 我找到了这个解决方案,但它也改变了远程,我不想这样做: https://www.codeblocq.com/2016/01/Untrack-files-already-added-to-git-repository-based-on-gitignore/

3。 将文件添加到 .git/info/exclude 不起作用,因为它是存储库中的文件,而不是新文件。

您可以通过多种方式执行此操作:

  • 做一个git状态然后你会看到哪些文件被改变了。后 您可以 git 单独添加文件。
    例如:git 添加 [文件名 (当您从 git status 获得结果时,只需在此处复制路径)]

  • 将您的文件添加到 git 忽略文件。这将取消跟踪您的更改 在那个提到的文件上。

如果您想在本地修改文件,但不希望 Git 远程管理这些更改,您可以将标志 --skip-worktree 设置为一个文件,这意味着文件 应该 在本地更改,但不能远程更改。对此文件所做和保存的任何更改都不会被标记为更改。

$ git update-index --skip-worktree path/to/your/skipping/file

要确认Git跳过了哪些文件,可以执行以下命令:

$ git ls-files -v | grep ^S
  • git ls-files 显示由 Git
  • 管理的 所有 个文件
  • -v检查被忽略的文件
  • --skip-worktree 在行开始
  • 显示为 S

要通过Git恢复文件跳过,你需要这个命令:

$ git update-index --no-skip-worktree path/to/your/skipping/file