0

我使用 Git 和 GitHub 将我在本地 Web 开发环境中所做的更改推送到我的 GitHub 帐户,然后我从那里将这些更新拉到我的实时生产站点。我正在使用 WordPress,所以我所做的是 .gitignore wp-config.php 文件,因为我的制作站点有自己独特的 wp-config.php 文件和自己的数据库凭据。当我 git 忽略此文件时,当我拉到我的生产站点时,它给了我以下错误:

error: Your local changes to the following files would be overwritten by merge:
wp-config.php
Please, commit your changes or stash them before you can merge.
Aborting

当我执行 git pull 时,如何防止这个 wp-config.php 文件被覆盖(更具体地说是删除)?

4

3 回答 3

2

这是您机器特定的配置文件。对于这种情况,最好使用构建工具。对您来说,最好在特殊文件上创建自定义配置my-config.php并将其包含在wp-config.php. 中也忽略my-config.php.gitignore现在你永远不会看到这样的问题。

您将看到的是my-config.php找不到文件错误。并将其写在您的自述文件中。

我做这整件事configuremake即使项目是在

如果这不是配置文件,并且您确定可以commit先执行更改,然后再执行pull。其他选项是stash已在错误消息中告知的选项。

于 2012-12-02T21:32:19.547 回答
1

您的更改不会被覆盖。这就是错误消息告诉您的内容。拉取失败是因为 git 不想覆盖您的更改。

为了让拉动发生并保留您的更改,请git stash在拉动之前执行。这将保存您的更改副本,并允许您毫无问题地拉取。然后git stash pop在拉取后将恢复您的更改。请注意,如果您拉动的更改wp-config.php与本地更改接触文件的同一部分,您可能会遇到合并冲突。

于 2012-12-02T21:27:30.060 回答
1

另一方还没有生效的忽略文件。一旦它在那里,您将不会收到此消息。而且它仍然被跟踪。所以除了修改两边的.ignore文件外,还需要把两边都删掉,以后就不会碍事了。

如果你打算将 git 用作你的博客程序的一部分,也可以看看 octopress。

于 2012-12-02T21:28:30.450 回答