背景:我们团队做完各自部分,在task9合并的时候,发现一个part出现了问题,合并时有冲突,原因应该就是我push之前没有pull!
1.首先冲突发生时,使用
$ git status
可以查看冲突的文件
并且打开文件内容,git会用<<<<<<,======,>>>>>>标记不同分支内容,现在可以修改冲突文件,然后commit即可修改。
2.但是发现 历史版本是正确了,不想修改冲突怎么办呢?
现在就在悲催的寻找历史版本了!
$git log
输入上述命令查询历史版本,但是信息太多了,我就想看流水线啊,于是
$git log --pretty=oneline
这样一个版本就显示一行(包含版本号+说明)
3.假设现在版本是3,想返回到之前版本2
$git reset --hard HEAD^(返回上个版本)
$git reset --hard HEAD~100(返回之前第100个版本)
4. 此时git log发现没有版本3了,那如果想返回3版本呢?
$ git reset --hard commit-id(版本号)
ps:
git reset --soft:回退到某个版本,只回退commit信息,不恢复index file一级
git reset --hard:彻底回退到某个版本,本地源码也会变成上一个版本的内容
但如果不知道版本号呢?git提供了记录每次命令的命名
$git reflog
这样查询到我们需要的版本号,使用reset则我们可以找回版本3了
版本之间就是这么穿梭的~~