我在git中有一些文件(即配置文件),我需要它们在git仓库中,但我不希望它们被更新(因为运行它们和make会更改配置文件)。所以,有没有办法告诉git忽略对文件的任何更改,但仍将原始文件保留在仓库中?目前我发现做到这样的唯一方法是将该文件添加到.gitignore文件中,然后使用-f直接将该文件添加到项目中。是否有更好的方法?
git update-index --assume-unchanged
命令。
--assume-unchanged
选项可用作粗略的文件级机制,以忽略已跟踪文件中未提交的更改(类似于.gitignore对未跟踪文件的处理方式)。您应该记住,显式的git add操作仍会导致该文件从工作树中刷新。如果需要修改此文件的索引,例如在合并提交时,Git将失败(优雅地);因此,如果上游更改了假定为未跟踪的文件,则需要手动处理该情况。
.gitignore
中,以便git忽略它们,并将模板文件(例如foo.template
用于名为foo
的文件,或者可能是template/foo
)存放到git中。然后,当你克隆仓库时,可以将它们复制出来并进行修改,而git不会对副本做任何操作,同时仍然管理模板。如果你有多个这样的文件,可以提供一个脚本或make规则之类的东西来从模板中填充所有配置文件,以便更容易地进行设置。.sample
文件通常也是我们的做法;但要小心使用过时的副本。我们还通过将该文件提交到仓库,然后将其添加到.gitignore
中来欺骗系统-尽管我只会在必要时这样做。 - Uriah Carpenter