git - 我在我的服务器上进行了更改,现在 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”时,它给了我错误信息。
我很感激你能给的任何建议!
解决方案
对于您的情况,一个简单的解决方案是:
- 输入服务器的 repo 目录
rm -r *
git reset --hard
或者git checkout -- .
进行第 2 步是为了以防您将来的更改有文件冲突。
第 3 步将工作目录上的每个跟踪文件重置回当前分支的版本。
如果您想保留更改,您可以在您的服务器上执行git add .
,然后git commit
在您的机器上执行git pull
,这应该会触发合并。然后你可以像往常一样推。
推荐阅读
- android - cancelNavigation 按钮不会从 navigationView 返回 mapView
- php - 当变量是数组的一部分时,需要帮助在 PHP 中格式化日期
- java - Reddit OAuth2 API 循环重定向
- ruby-on-rails - 元编程 - 动态方法
- c# - 使用具有较少属性的大型业务对象
- javascript - 如何在运行时从另一个填充选择列表?
- javascript - React 函数/Hooks 组件上的 componentDidMount 等价物?
- wordpress - 新的帖子类型或添加的自定义字段?
- c# - WPF - 如何用正方形填充窗口
- javascript - 在数组中查找和替换匹配的对象 - JavaScript