git rebase与 git合并(error: failed to push some refs to)解决方法
2016-02-11 16:33
831 查看
1.遇到的问题
本地有一个git仓库,在github上新建了一个空的仓库,但是更新了REWADME.md的信息,即在github上多了一个提交。关联远程仓库,操作顺序如下:
git remote add origin ****.gitgit push -u origin master 报错,需要先pull
git pull origin master 报错 error: failed to push some refs to
2.解决方法
第三步改为 git pull
--rebaseorigin master
3.git merge 与 git rebase
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
假设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
git pull = git fetch + git merge
git pull --rebase = git fetch + git rebase
5.更多参考
关于merge 与 rebase 的区别与优劣可以参考stackoverflow上的回答更多关于git 远程操作可以参考Git远程操作详解
相关文章推荐
- UVA 11374 - Airport Express(最短路)
- 51Nod 1305 Pairwise Sum and Divide(规律、数学)
- Linux进程 -- wait/waitpid函数
- 217. Contains Duplicate
- 1106. Lowest Price in Supply Chain (25)
- AIM Tech Round Div 1
- C++ 工程实践(4):二进制兼容性http://blog.csdn.net/Solstice/article/details/6233478
- Light OJ 1086 Jogging Trails (Floyd+状压DP)
- AIM Tech Round (Div. 2)题解
- 1014. Waiting in Line (30)
- 70. Climbing Stairs LeetCode
- Light OJ 1071 Baker Vai (DP)
- 217. Contains Duplicate LeetCode
- Codeforces AIM TECT Round#1 B DP
- 【树状数组】2016 BUPT Winter Training #2 D
- 我与小娜(08):人工智能的伟大胜利
- UVA 10617 Again Palindrome
- NSGAIII中的Niche preservation操作
- NSGAIII中的Associate
- AIM Tech Round [div2] C. Graph and String