[关闭]
@946898963 2021-07-01T01:11:46.000000Z 字数 956 阅读 630

rebase

Git


你真的懂git rebase吗?

彻底搞懂 Git-Rebase

git 进阶:git rebase

rebase指令为什么会导致代码丢失

  1. 结论:只要你的分支上需要 rebase 的所有 commits 历史还没有被 push 过,就可以安全地使用 git-rebase来操作。
  2. 一条 rebase 黄金法则:绝不要在公共的分支上使用它。 git rebase 会重写历史,一定只能在你自己的分支上使用它。

Git:重新设置基准时出现“无法在没有先前提交的情况下’挤压’”错误

  1. git总是从底部到顶部压缩

团队开发里频繁使用 git rebase 来保持树的整洁好吗?

  1. 所以,在不用-f的前提下,想维持树的整洁,方法就是:在git push之前,先git fetch,再git rebase
  2. git fetch origin master
  3. git rebase origin/master
  4. git push

Git:找回rebase丢失的提交

网易新闻项目:一般协同分支用rebase,而master分支使用merge操作。

rebase常规操作:

  1. rebase之前需要经master分支拉到最新
  2. 切换分支到需要rebase的分支,这里是dev分支
  3. 执行git rebase master,有冲突就解决冲突,解决后直接git add . git rebase --continue即可

OR

  1. 多人基于一个远程分支开发,同时本地分支和远程分支是同一个分支的情况下
  2. git fetch origin master
  3. git rebase origin/master
  4. git push
  5. 或者直接使用
  6. 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的方式合并远程代码,如下图所示:

此处输入图片的描述

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注