关于Git的问题:
我直接在我的服务器上做了一些小的修改(没有使用Git)。我只是打开了cPanel,更改了一些图像文件的名称,并删除了一些未使用的图像。
然后我回到我的代码编辑器,在几个文件中进行了更改。但是我现在不能推到master,因为Git说,“![remote rejected] master -> master(工作目录有未暂存的更改)”
我不知道该怎么办。我不介意一个解决方案,撤消我直接对服务器文件所做的更改。我也不介意一个解决方案,它会丢失我在编辑器中对文本所做的更改。他们都是很小的。我只想让他们恢复同步!
我尝试用“git checkout -b example”创建一个新分支,并在该分支中执行了“git pull”操作。很顺利我也可以推,我可以“git checkout master”,然后“git merge example”,这似乎很成功。但是当我“git checkout master”然后“git push origin master”时,它给了我错误消息。
我很感激你能给予我的任何建议!
3条答案
按热度按时间kq0g1dla1#
针对您的情况,一个简单的解决方案是:
1.输入服务器的存储库目录
rm -r *
(警告:这将删除所有内容)git reset --hard
(最佳工作)或git checkout -- .
第2步只是为了防止将来的更改会导致文件冲突。
第3步将工作目录中的每个跟踪文件重置回当前分支的版本。
如果您想保留更改,可以在服务器上执行
git add .
,然后执行git commit
,然后在您的机器上执行git pull
,这应该会触发 merge。你可以像往常一样推。t3psigkw2#
要清除最近的更改并返回到上一次状态(最后一次提交),只需确保您处于存储库的顶层,然后执行
另一种清除这些更改的方法是
git stash
,它会将这些更改放在一个隔离的分支中,以防您后悔之前删除了它们。tmb3ates3#
有时文件更改可能是文件权限。你可以用哪个来检查。
git add -p .