git操作相关问题整理以及解决方法(持续更新)

版权声明:转载请加链接 https://blog.csdn.net/qq_33722172/article/details/85336177

作为一名合格的程序员,版本控制工具肯定是要会使用的。博主以前一直用的是SVN,git用的不是很多,如今新东家用的是git,博主在使用过程中遇到一些问题,想着肯定也有小伙伴遇到相同的问题,所以就想总结一下分享出来,日后也会持续更新。
1.我们pull代码时,有时候会出现 git: Your branch and ‘origin/master’ have diverged
描述:你的分支和原分支有分歧
解决方法:
1).git fetch origin
git reset --hard origin/master
本地回滚至最初更改前的状态,可以解决问题
2).将光标放到在vim框的末尾,然后在键盘上 按下 Shift + z z 就可以了
2.git pull时出现Auto Merge Failed; Fix Conflicts and Then Commit the Result.
输入git status结果如下
在这里插入图片描述

从git status的结果可以发现:有两个文件存在合并冲突
git pull执行过程中分两步(1)从远程pull下origin/master分支(2)将远程的origin/master分支与本地master分支进行合并
这里可以看出问题是在第二步上
解决方法:
1).远程的分支是需要的,可以丢弃本地分支内容,则运行如下命令:
git reset --hard origin/master
或者git reset --hard ORIG_HEAD
2).本地修改需要保留,则对unmerged的文件进行手动修改,删掉冲突部分,然后运行如下命令
$:git add filename
$:git commit -m “message”
3).想废弃这次合并,回滚至合并之前状态,可以运行如下命令:
$:git reset --hard HEAD
3.git push代码时错误: rejected non-fast-forward
问题描述:文件冲突,本地的代码和远程Repository中的文件个数不一致(即远程Repository中存在本地项目中不存在的文件)或本地项目不是在远程Repository代码的基础上修改的。也见于初始上传项目的时候,远程Repository中已有代码。
解决方法:将远程Repository中的代码pull到本地进行merge,然后再进行Push,即可完成代码提交。或者 强制提交代码,命令行的话加上 -f 参数。
4.Git出现|MERGING情况
这是合并冲突
解决方法:
1).解决冲突,删除代码中矛盾的代码,然后上传或者下拉
2).git reset --hard head回退到操作前的状态
3).discard删除下载的,或者上传的代码,然后分别check out两个分支

猜你喜欢

转载自blog.csdn.net/qq_33722172/article/details/85336177