git冲突的解决与版本回退遇到的问题

这里有2个分支,master中的test.txt文件内容是master init,branch01中的test.txt文件内容是branch01 init。

git冲突的解决与版本回退遇到的问题  git冲突的解决与版本回退遇到的问题

1、合并分支遇到冲突

在master上merge branch01,由于master的第一行是master init,branch01的第一行是branch01 init,所以合并时就出现冲突了。

git冲突的解决与版本回退遇到的问题

解决方法:修改冲突的test.txt文件,然后git add, git commit, git push

git冲突的解决与版本回退遇到的问题

查看提交后的结果,会看到把branch01所有提交的版本都合并到了master上了,解决冲突后的test.txt文件也是对的。

git冲突的解决与版本回退遇到的问题

git冲突的解决与版本回退遇到的问题

2、版本回退遇到的问题

输入git log,如下图所示,head表示最新版本。

git冲突的解决与版本回退遇到的问题

现在把分支回退到合并前,也就是回退到master init提交的版本,如下图所示,输入git reset --hard [commit-id],可以看到当前版本已经回退到了master init提交到那个版本,之前合并到版本已经没有了

git冲突的解决与版本回退遇到的问题

现在把当前本地分支同步到远程,如下图所示,使用git push出现推送失败的情况,因为本地分支的版本低于远程分支,当然会这样,我们本来就行回退到之前的分支。注意这里不要使用git pull来更新分支,更新后又是回退前的版本了。使用git push -f强制推送过去,就可以了。强制推送的情况在这里可以使用,一般情况下不推荐使用。

git冲突的解决与版本回退遇到的问题

我们再次查看远程分支,如下图所示,推送版本只有master init,之前合并后的版本没有了

git冲突的解决与版本回退遇到的问题

git冲突的解决与版本回退遇到的问题

相关推荐