目录
[TOC]
一、Git
4. git rebase 和 git merge 的区别
git merge 和 git rebase 都是用于分支合并,关键在 commit 记录的处理上不同:
准确的说,rebase和merge是对代码产生的影响、结果相同。 merge会形成一个四边形,产生一个新的commit,就是一次新的提交,把develop分支带过来了; rebase抛开commid的变化,就相当于develop从没出现过一样,按顺序在master新提交一遍; 补充一个命令cherry-pick,可以合并单次commit; 建议使用merge,保留原分支变更,master就是一次一次的merge,git命令可以很直观的看到,或平台网页端网络图那里更好看,什么时候合并了一个feture。rebase后看总图,会有很多重复提交;
- git merge 会新建一个新的 commit 对象,然后两个分支以前的 commit 记录都指向这个新 commit 记录。这种方法会保留之前每个分支的 commit 历史。
- git rebase 会先找到两个分支的第一个共同的 commit 祖先记录,然后将提取当前分支这之后的所有 commit 记录,然后将这个 commit 记录添加到目标分支的最新提交后面。经过这个合并后,两个分支合并后的 commit 记录就变为了线性的记录了。
二、Webpack
1.优先看weboack5文章 juejin.cn/post/702324… 2.webpack面试题 juejin.cn/post/684490…
三、其他
1. Babel的原理是什么**?**
babel 的转译过程也分为三个阶段,这三步具体是:
- 解析 Parse: 将代码解析⽣成抽象语法树(AST),即词法分析与语法分析的过程;
- 转换 Transform: 对于 AST 进⾏变换⼀系列的操作,babel 接受得到 AST 并通过 babel-traverse 对其进⾏遍历,在此过程中进⾏添加、更新及移除等操作;
- ⽣成 Generate: 将变换后的 AST 再转换为 JS 代码, 使⽤到的模块是 babel-generator。