首页 > 解决方案 > 我在我的服务器上进行了更改,现在 git 不会让我推送到 master,因为它有“未暂存的更改”。我怎样才能解决这个问题?

问题描述

关于 Git 的菜鸟问题:

我直接在我的服务器上做了一些小改动(不使用 Git)。我刚刚打开 cPanel 并更改了一些图像文件的名称并删除了一些未使用的图像。

然后我回到我的代码编辑器并在几个文件中进行了更改。但我现在无法推送到 master,因为 Git 说,“![远程拒绝] master -> master(工作目录有未暂存的更改)”

我不知道如何解决这个问题。我不介意撤消我直接对服务器文件所做的更改的解决方案。我也不介意丢失我在编辑器中对文本所做的更改的解决方案。他们都很小。我只是想让它们重新同步!

我尝试使用“git checkout -b example”创建一个新分支,并在该分支中执行了“git pull”。一切顺利。我也可以推送,我可以“git checkout master”然后“git merge example”,这似乎很成功。但是当我“git checkout master”然后“git push origin master”时,它给了我错误信息。

我很感激你能给的任何建议!

标签: git

解决方案


对于您的情况,一个简单的解决方案是:

  1. 输入服务器的 repo 目录
  2. rm -r *
  3. git reset --hard或者git checkout -- .

进行第 2 步是为了以防您将来的更改有文件冲突。

第 3 步将工作目录上的每个跟踪文件重置回当前分支的版本。


如果您想保留更改,您可以在您的服务器上执行git add .,然后git commit在您的机器上执行git pull,这应该会触发合并。然后你可以像往常一样推。


推荐阅读