【问题标题】:How do I ignore files when pulling from github?从 github 拉取文件时如何忽略文件?
【发布时间】:2026-02-09 01:20:05
【问题描述】:

我正在使用 Ruby,当我从 Github 拉取时,我想忽略我的配置文件。

我收到的错误是: “错误:您对以下文件的本地更改将被合并覆盖:config/database.yml”

我尝试过的事情:

1) 我将文件路径添加到位于我的应用程序根目录中的 .gitignore。

2) 我将文件路径添加到我的全局 .gitignore

3) 我从应用程序根目录运行 git update-index --assume-unchanged /config/database.yml

4) 我从应用程序根目录运行 git update-index --skip-worktree config/database.yml

我的计算机上的多个不同文件夹中有同一应用程序的多个实例。应用程序的其他实例遵循假设不变命令。我不确定我错过了什么。

【问题讨论】:

    标签: ruby github gitignore git-assume-unchanged


    【解决方案1】:

    考虑在拉取之前存储本地更改:

    git stash
    git pull
    git stash pop
    

    如果您存储的文件在源上发生更改,您可能会遇到合并冲突。

    【讨论】:

    • 对不起,如果我不清楚,远程配置文件总是不同的。我想总是忽略远程文件。它适用于其他分支。只是没有这个。如果我 stash/pull/pop 提交,每次拉取时我都必须这样做吗?
    • 配置文件是否需要在存储库中?
    • 配置文件存储的敏感信息因开发人员而异。我们不会将这些信息存储在 Github 上。 Github 上的文件版本本质上是没有值的相同文件。
    • 解决这个问题的通常(如果你问我,是正确的)方法是存储例如config/database.example.yml 在 repo 中,然后当开发人员克隆 repo 时,他们只需将其复制到 config/database.yml 并进行更改。这样,repo 中的文件就不会与本地文件冲突。
    • 想通了。有人无意中提交了他们的配置文件。这将这些文件的索引设置在我的本地之前。看起来像一个错误,但可能是预期的功能。