Git - 从接收后签出中排除配置文件


Git - Exclude a config file from post-receive checkout

我有一个我正在本地工作的 git 项目。 这是一个PHP项目,带有存储MySQL数据库连接信息的配置文件。 我的本地 MySQL 设置与远程设置不同。

在我的遥控器上,我有一个接收后钩子,可以将文件签出到服务器上的文件夹中:

#!/bin/sh
GIT_WORK_TREE="../demo" git checkout -f
chmod +x hooks/post-receive

我如何告诉此签出不包含(覆盖配置文件),因为它将用我的本地配置文件替换远程配置文件? 我尝试将我的本地配置文件添加到 .gitignore 中,但这似乎没有做到。

知道如何从结帐中排除配置文件吗?

正确的解决方案是根本不提交您的config.php(或任何名称),而是将其放入.gitignore并提交config.php.example

因此,只需从存储库中删除配置文件,在远程计算机上重命名它,拉取以便您拥有最新的提交(这将删除文件),然后将其移回。

你可以

试试这个

运行命令:

git rm -r --cached .

这会从索引中删除所有内容,然后只需运行:

git add .

提交它:

git commit -m ".gitignore is now working"