异常1:Your local changes to the following files would be overwritten by merge
pull遇到错误:error: Your local changes to the following files would be overwritten by merge
这里的异常原因是,本地有未提交的代码,但是你又要拉取git服务器的代码
一 如果需要保存本地代码:
git stash
git pull origin master
git stash pop
git stash
的时候会把你本地快照
然后git pull
就不会阻止你了,pull完之后这时你的代码并没有保留你的修改。惊了! 别急,我们之前好像做了什么?
git stash pop 其实是将你快照的代码提取出来
二 如果不需要保存
git reset --hard
git pull origin master
git reset 表示恢复到上一次commit的状态
解决方案:
pull遇到错误:error: Your local changes to the following files would be overwritten by merge:
异常2.git stash pop有的时候也会出错
异常: The following untracked working tree files would be overwritten by merge:
AOPDemo/AOPDemo/Form2.Designer.cs
AOPDemo/AOPDemo/Form2.cs
AOPDemo/AOPDemo/Form2.resx
TestWebApi/TestWebApi/obj/Debug/netcoreapp3.1/apphost.exe
解决方法:
git clean -d -fx " AOPDemo/AOPDemo/Form2.Designer.cs"
这里是一步步的把提示有出入的数据全部清除。如果需要保留数据,请慎点
异常3:‘pull‘ appears to be a git command, but we were not able to execute it. Maybe git-pull is
先说解决方案:
1.使用git bash 执行git pull,可用
2.将环境变量Path的git路径改为安装目录下的cmd文件夹
(D:\install\Git\cmd)
解决过程:
今天使用git拉取代码的时候,发现一直拉不了,提示异常pull is broken
首先声明,我是把git安装路径放到了环境变量上,然后直接使用git pull指令
之前其实很多指令都没有问题,例如git status ,git --version等
但是就是git pull有问题
于是我转用了git bash进入git的bash窗口
在这里执行git pull命令时,却发现git pull的指令可用
那就说明是自己的环境变量配置有问题,
之前看网上教程时,使用的环境变量是安装目录mingw64\bin,
例如我的是:D:\install\Git\mingw64\bin
今天重新找了一下路径,发现真正的环境变量应该设置为安装目录\cmd
例如我的是D:\install\Git\cmd
发现问题即解决了
异常4:insufficient permission for adding an object to repository database ./objects
异常信息很明显,insufficient permission …即权限不够,也就是说,当前用户没有权限
.而我用的是大家常用的git用户,所以只需要修改服务器上对应的的.git文件权限即可.
chown git:git XXXX.git
即用chown 将XXXX.git文件的拥有者(第一个)和用户(第二个)变更为git
此时再执行git push,即可成功
值得一提的是,本处权限的问题,在执行git status的时候会提示另外一个异常
H:\git\PythonLearn> git status
On branch master
Your branch is based on 'origin/master', but the upstream is gone.
(use "git branch --unset-upstream" to fixup)
nothing to commit, working directory clean