为了账号安全,请及时绑定邮箱和手机立即绑定

如何解决git说“在合并之前提交更改或存储它们”?

如何解决git说“在合并之前提交更改或存储它们”?

SMILET 2019-07-27 14:50:08
如何解决git说“在合并之前提交更改或存储它们”?我在我的本地计算机上做了一些更新,将它们推送到远程存储库,现在我正在尝试将更改提取到服务器并获取消息;错误:合并将覆盖对以下文件的本地更改:的wp-content / W3TC-配置/ master.php请在合并之前提交更改或存储更改。所以我跑了,git checkout -- wp-content/w3tc-config/master.php并再次尝试,我收到相同的消息。我假设w3tc在服务器上的配置文件中改变了一些东西。我不关心本地副本或远程副本是否在服务器上(我认为远程副本是最好的),我只是希望能够合并其余的更改(插件更新)。有任何想法吗?
查看完整描述

3 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

您无法与本地修改合并。Git可以保护您免于丢失潜在的重要更改。

你有三个选择:

  • 使用提交更改

    git commit -m "My message"
  • 存放它。

    Stashing充当堆栈,您可以在其中推送更改,然后以相反的顺序弹出它们。

    要藏匿,输入

    git stash

    合并,然后拉藏:

    git stash pop
  • 放弃本地更改

    使用git reset --hard
    git checkout -t -f remote/branch

    或者:放弃特定文件的本地更改

    运用 git checkout filename


查看完整回答
反对 回复 2019-07-27
?
长风秋雁

TA贡献1757条经验 获得超7个赞

您可以尝试以下方法之一:

变基

对于简单的更改,尝试在拉动变化的同时进行变基,例如

git pull origin master -r

因此,它将在获取后将您当前的分支应用于上游分支的顶部。

这相当于:checkout masterfetchrebase origin/masterGit命令。

这是一种潜在危险的操作模式。它重写了历史,当你已经发布了这段历史时,它并不是一个好兆头。除非您git-rebase(1)仔细阅读,否则请勿使用此选项。


查看

如果您不关心本地更改,可以切换到其他分支临时(强制),然后将其切换回来,例如

git checkout origin/master -fgit checkout master -f

重启

如果您不关心本地更改,请尝试将其重置为HEAD(原始状态),例如

git reset HEAD --hard

如果上面没有帮助,那么它可能是你的git规范化文件(.gitattributes)中的规则,所以最好提交它所说的内容。或者您的文件系统不支持权限,因此您必须filemode在git配置中禁用。

相关:如何强制“git pull”覆盖本地文件?


查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 1 关注
  • 9505 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信