git rebase与 git合并(error: failed to push some refs to)解决方法

推荐阅读

Pandas 数据处理(三) - Cheat Sheet 中文版 pdf
Pandas 数据处理(二) - 筛选数据
Pandas 数据处理(一) - DataFrame 与 Serieshtml

1.遇到的问题

本地有一个git仓库,在github上新建了一个空的仓库,可是更新了REWADME.md的信息,即在github上多了一个提交。git

关联远程仓库,操做顺序以下:

  1. git remote add origin ****.git
  2. git push -u origin master 报错,须要先pull
  3. git pull origin master 报错 error: failed to push some refs to

2.解决方法

  • 第三步改成 git pull --rebase origin master

3.git merge 与 git rebase

  1. git merge 和 git rebase 都是将远程分支与本地分支合并的一种方法,git merge 会生成一个新的节点,例如A和B都位于同一个HEAD,A提交了2个commit C1和C2,B 提交了2个commit C3和C4,git merge的结果是在C3和C4以后合并生成C5,这样提交历史比较清晰,但多了一个C5
  2. 假设A已经将C1和C2 push到了远程分支,那么B 使用git rebase则会将C3和C4缓存到.git/rebase中,恢复到以前的状态,更新C1和C2,而后再将C3和C4做为补丁应用到C2的状态上。结果以下:
    原始状态->C1->C2->C3'->C4',C3'和C4'为git 根据C3和C4生成的补丁,log是一条直线,并且没有多余的C5,可是平行信息丢失。

4.git pull 与 git pull --rebase

  1. git pull = git fetch + git merge
  2. git pull --rebase = git fetch + git rebase

5.更多参考

关于merge 与 rebase 的区别与优劣能够参考stackoverflow上的回答
更多关于git 远程操做能够参考Git远程操做详解github

相关文章
相关标签/搜索