如何防止git pull覆盖文件?

时间:2012-12-02 21:25:15

标签: wordpress git github git-pull

我使用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文件被覆盖(更具体地删除)?

3 个答案:

答案 0 :(得分:3)

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

您将看到my-config.php文件未找到错误。并在自述文件中写下来。

即使项目位于

,我也会使用configuremake执行此操作

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

答案 1 :(得分:1)

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

要允许拉动并保持更改,请在拉动之前执行git stash。这将保存您的更改副本,并允许您毫无问题地提取。拔出后git stash pop会恢复您的更改。请注意,如果您要提取的更改wp-config.php触及与本地更改相同的文件部分,则可能会遇到合并冲突。

答案 2 :(得分:1)

另一方还没有生效的忽略文件。一旦它在那里,你将不会有这个消息。它仍然被跟踪。因此,除了更改双方的.ignore文件之外,还需要在两侧删除它,从那时起它就不会妨碍它。

如果你打算在你的博客例程中使用git,也可以看一下octopress。