【问题标题】:How to prevent git pull from overwriting a file?如何防止 git pull 覆盖文件?
【发布时间】:2012-11-20 08:57:59
【问题描述】:

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

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

【问题讨论】:

    标签: wordpress git github git-pull


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      您将看到my-config.php 找不到文件错误。并在你的 README 中写下来。

      我用configuremake 做这一切,甚至项目在

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

      【讨论】:

      • 嗨,你知道如何在 Drupal 中做到这一点吗?
      • drupal 也是如此。对于 wordpress,配置文件是 wp-config.php。对于drupal,它会有所不同。我的答案中的其他一切都是一样的。
      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2020-10-06
        • 2021-03-05
        • 1970-01-01
        • 2017-12-30
        相关资源
        最近更新 更多