git merge 与 git rebase的区别
git log --graph可以查看分支合并图1》他们都是用于从一个分支获取并且合并到当前分支2》一个场景:在feature分支进行新特性的开发,与此同时,master分支也有新的提交,为了将master上的新提交合并到你的feature分支上3》merge合并执行的命令是:git checkout featuregit merge master此时在featur...
git log --graph可以查看分支合并图
1》他们都是用于从一个分支获取并且合并到当前分支
2》一个场景:在feature分支进行新特性的开发,与此同时,master分支也有新的提交,为了将master上的新提交合并到你的feature分支上
3》merge合并
执行的命令是:
git checkout feature
git merge master
此时在feature上git会自动产生一个新的commit
merge特点:自动创建一个新的commit
优点:记录真实的commit情况,包括每个分支的详情
缺点:因为每次merge会自动产生一个merge commit,所以commit比较频繁时,分支会很杂乱
合并遇到冲突:仅需要修改后重新commit
4》rebase合并(本质是变基)
执行命令:
git checkout feature
git rebase master(feature分支上)
它会把你整个feature分子移动到master分支后面,有效的把所有master分支新的提交并入过来
rebase特点:会合并之前的commit历史
优点:得到跟简洁的项目历史,去掉了merge commit
缺点:如果合并出现代码问题不容易定位
合并是出现冲突:修改冲突部分
git add
git rebase --continue(如果执行无效,可以git rebase --skip)
rebase黄金法则:绝不要在公共分支上使用它
比如:将master分支rebase到你feature分支上
git rebase fearure(master分支上)
将master分支的所有提交移到feature分支后面,问题是它只发生在你的代码仓库中,其他所有开发者还在原来的master分支上,git会认为你的master分支和其他人的master以及分叉
git rebase会获得一个干净的没有merge commit的线性历史树
git merge可以避免commit history的风险
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)