CS-Notes 学习笔记
大模型应用开发 · 工程实践

git merge 和 git rebase 有什么区别?git pull 和 git fetch 呢?

先自己想一想,再看参考要点

参考要点

  • 两者都能把 master 上的新提交合进 dev:merge 生成一个有两个父提交的合并提交,原有提交不变,历史保留分叉
  • rebase 把 dev 上的提交逐个放到 master 最新提交之后重新提交,历史成为直线,但这些提交的哈希都变了,所以只对还没推送、只有自己用的分支变基
  • git rebase -i 可以把本地多个提交合成一个。git fetch 只更新 origin/master 这类远程跟踪分支,本地分支不动
  • git pull 等于 fetch 之后再合并,按 pull.rebase 配置或 --rebase 参数选择变基还是合并。撤销已推送的提交用 git revert 生成一个抵消的新提交,不要 reset 后强推
在学习站中自测这道题

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。