今天将项目push到远程仓库出现的错误:
原因是远程仓库中的文件和我们本地的仓库有差异,例如你的远程仓库有个文件Readme. md,但是本地仓库却没有,就可能会出现这种情况。 我的就是远程仓库中有Readme. md文件,而本地仓库中没有该文件造成的。
解决办法:
git pull --rebase origin master
注意:本人使用git pull origin master同样出现以上错误
Rebase 合并
该命令可以让和 merge
命令得到的结果基本是一致的。
通常使用 merge
操作将分支上的代码合并到 master
中,分支样子如下所示
使用 rebase
后,会将 develop
上的 commit
按顺序移到 master
的第三个 commit
后面,分支样子如下所示
Rebase 对比 merge,优势在于合并后的结果很清晰,只有一条线,劣势在于如果一旦出现冲突,解决冲突很麻烦,可能要解决多个冲突,但是 merge 出现冲突只需要解决一次。
使用 rebase 应该在需要被 rebase 的分支上操作,并且该分支是本地分支。如果 develop
分支需要 rebase 到 master
上去,那么应该如下操作
// branch develop
git rebase master
git checkout master
// 用于将 `master` 上的 HEAD 移动到最新的 commit
git merge develop