Php 如何在第一次推送文件时避免从下一次推送(从推送开始,再从拉取开始)

Php 如何在第一次推送文件时避免从下一次推送(从推送开始,再从拉取开始),php,git,gitignore,Php,Git,Gitignore,我的repo中有一个名为local.config.php的文件。我希望这个文件在git clone中获取(即仅限首次拉取),并且从下一次开始,我不希望跟踪这个文件。此文件(克隆后)应按.gitignore中的原样处理。 无论何时任何人更改其计算机上的local.config.php(在克隆my repo后),git状态不应显示此文件以进行暂存或提交。您可以将文件添加到.git/info/exclude或告诉git不要跟踪本地更改: git更新索引--跳过worktree local.config

我的repo中有一个名为local.config.php的文件。我希望这个文件在git clone中获取(即仅限首次拉取),并且从下一次开始,我不希望跟踪这个文件。此文件(克隆后)应按
.gitignore
中的原样处理。
无论何时任何人更改其计算机上的local.config.php(在克隆my repo后),
git状态不应显示此文件以进行暂存或提交。

您可以将文件添加到
.git/info/exclude
或告诉git不要跟踪本地更改:

git更新索引--跳过worktree local.config.php


当您将代码推送到git repo时,您可以阅读更多有关git update index的信息,然后使用公共设置推送配置文件,稍后在第二次提交add.gitignore文件时,在其中添加文件名……这将允许用户在签出时获取文件,但在推送或拉送时不会显示为diff。您这样做是为了设置默认配置。不要。在其他位置提供默认配置,并允许用户在未提交的文件中设置真实(或覆盖默认)配置。换句话说,提交
local.config.php.sample
local.config.default.php
,它被
.gitignore
d
local.config.php
覆盖。(我不是说你不能做你想做的事,你不能,但你可以接近,但更确切地说,就是不要尝试。这会带来痛苦的体验。)一旦文件在索引中,将文件添加到忽略或排除条目将不会有多大好处。
--skip worktree
方法基本上是有效的,但需要克隆存储库的每个人自己完成这一步骤。这是一个解决方案,但这是一个错误的方向。每个接受克隆的人都需要采取上述步骤。这不是我想要的解决方案。一般来说,我同意VCS下的*.default文件和.gitignore中的用户文件是更好的选择;尽管如果您不想切换到这种方法,您可以通过将
签出后
钩子放入存储库并将
core.hooksPath
设置到该目录中,为流程添加更多的自动化功能。