网站底部备案号悬挂,如何建立免费网站的步骤,iis怎么使用来建设一个网站,wordpress更改固定链接页面打不开转载请注明出处#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你#xff0c;欢迎[点赞、收藏、关注]哦~ 这三个确实非常像#xff0c;以至于对于初学者来说比较难理解。
总结对比
先给出对比#xff1a; 特性git mergegit rebasegit cherry-pick功能合并… 转载请注明出处小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你欢迎[点赞、收藏、关注]哦~ 这三个确实非常像以至于对于初学者来说比较难理解。
总结对比
先给出对比 特性git mergegit rebasegit cherry-pick功能合并分支保留历史重新应用提交使历史线性化挑选特定提交复制到另一个分支提交顺序保留分支的分叉和合并点改变提交顺序使历史线性化不改变提交顺序仅复制指定提交哈希值不改变原始提交哈希值改变原始提交哈希值生成新的提交哈希值历史清晰度保留分支历史适合多人协作线性化历史适合个人开发灵活挑选提交但可能使历史复杂适用场景合并分支保留完整历史更新分支清理提交历史将特定修复或功能应用到其他分支可视化结果https://learngitbranching.js.org/?NODEMOlocalezh_CNhttps://learngitbranching.js.org/?NODEMOlocalezh_CNhttps://learngitbranching.js.org/?NODEMOlocalezh_CN是否创建新提交创建合并提交merge commit重新应用提交生成新的提交复制指定提交生成新的提交是否修改历史不修改历史修改历史重新应用提交修改历史复制指定提交冲突处理合并冲突解决后完成合并逐个解决冲突继续变基逐个解决冲突继续挑选提交 可视化理解
假设我们有以下的提交历史
A -- B -- C [main]\D -- E [feature] main 分支包含提交 A、B 和 C。 feature 分支从 main 的 B 提交分叉包含提交 D 和 E。
1. 使用 git merge
如果我们在 main 分支上运行 git merge featureGit 会创建一个新的合并提交将 feature 分支的更改合并到 main 分支。
可视化结果
A -- B -- C -- F [main]\ /D -- E [feature] F 是一个新的合并提交表示 main 和 feature 分支的合并。 提交历史保留了分支的分叉和合并点适合多人协作场景。 2. 使用 git rebase
如果我们在 feature 分支上运行 git rebase mainGit 会将 feature 分支的提交 D 和 E 重新应用到 main 分支的最新提交 C 上。
可视化结果
A -- B -- C [main]\D -- E [feature] 提交 D 和 E 被重新应用到 C 上生成了新的提交 D 和 E。 提交历史变得更加线性适合个人开发或清理提交历史的场景。 3. 使用 git cherry-pick
假设我们只想将 feature 分支上的提交 E 应用到 main 分支可以在 main 分支上运行 git cherry-pick E。
可视化结果
A -- B -- C -- E [main]\D -- E [feature] 提交 E 被复制到 main 分支上生成了新的提交 E。 提交历史中只包含了被挑选的提交适合将特定修复或功能应用到另一个分支的场景。 个人理解 git merge 适合大部分情况谁拉取了、做了几次提交、合并到了什么位置等都非常清晰git rebase 适合个人开发者。虽然它能把记录拉成一条直线但对于团队开发而言在看谁修改了哪部分的时候就懵逼了非常不直观git cherry-pick 适合在分支上做了一系列修改不想把这么多提交都放到主分支上去的时候用。只需要把分支上最终的提交拿到主分支就可以了。也比较清晰。 因此我觉得: merge cherry-pick rebase 操作示例
1. git merge 示例
# 切换到 main 分支
git checkout main# 合并 feature 分支
git merge feature
2. git rebase 示例
# 切换到 feature 分支
git checkout feature# 将 feature 分支的提交重新应用到 main 分支
git rebase main
3. git cherry-pick 示例
# 切换到 main 分支
git checkout main# 挑选 feature 分支上的提交 E
git cherry-pick E