我使用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文件被覆盖(更具体地删除)?
答案 0 :(得分:3)
这是您的计算机专用配置文件。对于这种情况,最好使用构建工具。对于您来说,最好在特殊文件my-config.php
上创建自定义配置,并将其包含在wp-config.php
中。同时忽略my-config.php
中的.gitignore
。现在你永远不会看到这样的问题。
您将看到my-config.php
文件未找到错误。并在自述文件中写下来。
即使项目位于php
,我也会使用configure
,make
执行此操作
如果这是不是配置文件,并且您确定更改,则可以先commit
然后执行pull
。其他选项是stash
,已在错误消息中告知。
答案 1 :(得分:1)
您的更改不会被覆盖。这就是错误消息告诉你的内容。拉取失败,因为git不想覆盖您的更改。
要允许拉动并保持更改,请在拉动之前执行git stash
。这将保存您的更改副本,并允许您毫无问题地提取。拔出后git stash pop
会恢复您的更改。请注意,如果您要提取的更改wp-config.php
触及与本地更改相同的文件部分,则可能会遇到合并冲突。
答案 2 :(得分:1)
另一方还没有生效的忽略文件。一旦它在那里,你将不会有这个消息。它仍然被跟踪。因此,除了更改双方的.ignore文件之外,还需要在两侧删除它,从那时起它就不会妨碍它。
如果你打算在你的博客例程中使用git,也可以看一下octopress。