@946898963
2021-07-01T09:11:46.000000Z
字数 956
阅读 739
Git
rebase指令为什么会导致代码丢失
结论:只要你的分支上需要 rebase 的所有 commits 历史还没有被 push 过,就可以安全地使用 git-rebase来操作。
一条 rebase 黄金法则:绝不要在公共的分支上使用它。 git rebase 会重写历史,一定只能在你自己的分支上使用它。
Git:重新设置基准时出现“无法在没有先前提交的情况下’挤压’”错误
git总是从底部到顶部压缩
团队开发里频繁使用 git rebase 来保持树的整洁好吗?
所以,在不用-f的前提下,想维持树的整洁,方法就是:在git push之前,先git fetch,再git rebase。
git fetch origin master
git rebase origin/master
git push
网易新闻项目:一般协同分支用rebase,而master分支使用merge操作。
rebase常规操作:
rebase之前需要经master分支拉到最新
切换分支到需要rebase的分支,这里是dev分支
执行git rebase master,有冲突就解决冲突,解决后直接git add . 再git rebase --continue即可
OR
多人基于一个远程分支开发,同时本地分支和远程分支是同一个分支的情况下
git fetch origin master
git rebase origin/master
git push
或者直接使用
git pull --rebase
某些疑问自己实践得出的答案:
从远程分支的h节点拉取出本地分支,然后在本地分支进行c-bendi-i 和c-bendi-j两次提交,在远程分支进行了c-yuancheng-i提交,然后采用pull的方式拉取远程代码,如下图所示:
然后在上面操作的基础上,在本地进行了一次c-bendi-k提交,在远程进行了一次c-yuancheng-j提交,然后采用rebase的方式合并远程分支的代码,如下图所示:
将上面操作的代码提交到远程,然后在上面操作的基础上,然后在本地进行一次c-bendi-l提交,如下图所示:
然后在远程进行一次c-yuancheng-k提交,然后用rebase的方式合并远程代码,如下图所示: