赞
踩
作为一名合格的程序员,版本控制工具肯定是要会使用的。博主以前一直用的是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两个分支
5.Git如何回滚到某个版本
如下:
$ git log -3 #参数说明:-p选项对话展开显示每次提交的内容差异,-3显示队最近的三次更新
commit b1ac9269bae280af2157a7e37c6badb2d8de6bcb (HEAD -> T20181130_SERVER-3047, origin/T20181130_SERVER-3047)
Author: XXX <XXX@XXX.com>
Date: Mon Jan 14 11:30:46 2019 +0800
commit 973141bbb8efe59c68ab3005e0df73d190113051
Author: XXX <XXX@XXX.com>
Date: Thu Jan 10 11:49:38 2019 +0800
commit e17ddaa35dff69b5d33c52f8fce7c7faed67427d (master)
Author: XXX <XXX@XXX.com>
Date: Fri Dec 28 17:02:47 2018 +0800
$ git reset --hard e17ddaa35dff69b5d33c52f8fce7c7faed67427d#回退版本
$ git push -f #强制提交
6.出现Permanently added the RSA host key for IP address ‘192.168.100.128’ to the list of known hosts
这是一个警告:为IP地址192.30.252.128的主机(RSA连接的)持久添加到hosts文件中
解决办法:
vim /etc/hosts
添加一行:192.168.100.128 github.com
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。