电商网站怎么做权限控制代理记账包含哪些业务
电商网站怎么做权限控制,代理记账包含哪些业务,wordpress个人展示,wordpress 3d云标签参考官方的文档Git-分支-变基#xff0c;以下是我的理解希望对你有用#x1f412;#x1f412;#x1f412;Git-分支-变基https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA 变基核心逻辑#xff1a;找到两分支最近共同祖先→提取当前分支独有提…参考官方的文档Git-分支-变基以下是我的理解希望对你有用Git-分支-变基https://git-scm.com/book/zh/v2/Git-%E5%88%86%E6%94%AF-%E5%8F%98%E5%9F%BA变基核心逻辑找到两分支最近共同祖先→提取当前分支独有提交→在目标分支最新节点上依次重放。一、基础变基单分支分叉变基最常用适用场景开发分支experiment基于 master 开发master 有新提交需将开发分支变基到 master 最新节点保证提交历史整洁。我的理解以下是文字详解步骤 1初始状态 - 分支分叉master 分支提交到 C3experiment 分支从 C2 分叉后提交了 C4两分支出现分叉最近共同祖先为 C2。# 提交历史可视化 C0 → C1 → C2 → C3 ●master └──→ C4 ●experiment # 此时分支命令 git checkout master # master指向C3 git checkout experiment # experiment指向C4步骤 2执行变基 - 重放提交切换到 experiment 分支执行git rebase master将当前所在分支的所有提交“重新基于”master分支的最新提交之上将 experiment 的独有提交 C4在 master 最新节点 C3 上重放。# 执行命令 git checkout experiment git rebase master # 变基过程可视化底层逻辑 1. 找共同祖先C2 2. 提取experiment独有提交C4的修改补丁 3. 将experiment指向master最新节点C3 4. 重放C4补丁生成新提交C4 C0 → C1 → C2 → C3 ●master → C4 ●experiment # 原C4被丢弃Git会暂时保留后续会被垃圾回收步骤 3快进合并 - 整合分支切换回 master 分支执行git merge experiment将名为experiment的分支合并到你当前所在的分支因 experiment 直接继承 master 最新节点master 会快进指向 C4无新提交生成。# 执行命令 git checkout master git merge experiment # 最终提交历史直线无分叉 C0 → C1 → C2 → C3 → C4 ●master/experiment核心结果和 merge 的最终快照完全一致但提交历史从分叉状变成直线状更易追溯。二、高级变基--onto 选项多分支精准变基适用场景从主题分支server再分离子分支client需将 client 的独有提交跳过 server 直接变基到 master不整合 server 的修改。步骤 1初始状态 - 多分支嵌套分叉master 提交到 C6server 从 C2 分叉后提交 C3/C4/C10client 从 server 的 C3 分叉后提交 C8/C9最近共同祖先client 与 server 为 C3server 与 master 为 C2。# 提交历史可视化 C0 → C1 → C2 → C5 → C6 ●master └──→ C3 → C4 → C10 ●server └──→ C8 → C9 ●client步骤 2执行 --onto 变基 - 跨分支重放执行git rebase --onto master server client仅提取 client 相对于 server 的独有提交C8/C9在 master 最新节点 C6 上重放。# 核心命令无需切换分支直接执行 git rebase --onto master server client # 变基过程可视化 1. 找client与server的共同祖先C3 2. 提取client独有提交C8、C9的修改补丁 3. 将client指向master最新节点C6 4. 依次重放C8、C9生成新提交C8、C9 C0 → C1 → C2 → C5 → C6 ●master → C8 → C9 ●client └──→ C3 → C4 → C10 ●server └──→ C8 → C9被丢弃步骤 3master 快进合并 - 整合 client切换到 master执行git merge clientmaster 快进指向 C9整合 client 的修改。git checkout master git merge client # 合并后历史 C0 → C1 → C2 → C5 → C6 → C8 → C9 ●master/client └──→ C3 → C4 → C10 ●server步骤 4server 变基到 master - 后续整合待 server 测试完成后执行git rebase master server将 server 的所有提交C3/C4/C10在 master 最新节点 C9 上重放。# 核心命令 git rebase master server # 变基后历史 C0 → C1 → C2 → C5 → C6 → C8 → C9 ●master/client → C3 → C4 → C10 ●server步骤 5最终合并 - 清理分支master 快进合并 server删除无用的 client 和 server 分支提交历史全程直线。git checkout master git merge server git branch -d client git branch -d server # 最终纯净历史 C0 → C1 → C2 → C5 → C6 → C8 → C9 → C3 → C4 → C10 ●master三、变基的风险已推送提交禁止变基符号版演示变基的本质是丢弃旧提交、生成新提交若对已推送到远程的提交执行变基会导致团队提交历史混乱这是 Git 变基的黄金准则。步骤 1初始状态 - 本地 远程分支一致本地 master 和远程 masterorigin/master均指向 C3本地基于 C3 提交 C4、C5。# 远程仓库origin C0 → C1 → C2 → C3 ●origin/master # 本地仓库 C0 → C1 → C2 → C3 → C4 → C5 ●master步骤 2错误操作 - 对已推送提交变基若此时本地回滚到 C3执行变基生成新提交 C4并通过git push --force强制推送到远程覆盖远程的 C3 节点。# 本地错误操作 git reset --hard C3 git rebase 某分支 # 生成C4 git push --force origin master # 远程仓库被覆盖 C0 → C1 → C2 → C3 → C4 ●origin/master # 本地其他同事仓库基于旧远程历史开发 C0 → C1 → C2 → C3 → C4 → C5 ●master步骤 3团队混乱 - 提交历史冲突同事拉取远程更新后本地会出现重复提交合并后历史分叉且冗余后续整合会极度繁琐。# 同事执行git pull后历史混乱 C0 → C1 → C2 → C3 → C4 → C5 → C6合并提交●master └──→ C3 → C4 ●origin/master # C4和C4内容一致SHA-1不同形成无意义分叉补救方案若已发生上述情况通知团队所有人执行拉取并变基而非直接合并让 Git 自动识别并重放本地修改。# 团队所有人执行核心命令 git fetch origin git rebase origin/master # 修复后历史恢复直线 C0 → C1 → C2 → C3 → C4 → C5 ●master/origin/master四、变基 vs 合并 核心对比符号版合并merge保留历史简单安全# 初始分叉 C0→C1→C2→C3●master └→C4●experiment # 执行git merge experiment C0→C1→C2→C3→C5●master └→C4→C5●experiment # C5为合并提交历史保留分叉记录实际开发过程变基rebase整洁历史按需使用# 初始分叉 C0→C1→C2→C3●master └→C4●experiment # 执行git rebase master git merge C0→C1→C2→C3→C4●master/experiment # 无合并提交历史直线重写开发过程选择原则本地未推送提交用变基清理历史方便自己追溯已推送 / 团队共享提交用合并保留历史避免团队混乱开源贡献 / 向主项目提 PR先变基到主项目最新分支再提交让维护者可直接快进合并。五、变基核心命令速查符号版配套场景核心命令适用情况基础变基git rebase 目标分支单分支分叉将当前分支变基到目标分支多分支精准变基git rebase --onto 目标分支 基准分支 待变基分支跨分支重放提交跳过基准分支直接变基远程分支git rebase origin/master本地分支同步远程最新修改无合并提交拉取并变基补救 / 日常git pull --rebase替代 git pull拉取远程后直接变基避免冗余合并全局设置 pull 默认变基git config --global pull.rebase true日常开发让 git pull 默认执行 rebase保持历史整洁最终总结变基的核心是 **“重放提交让历史变直”**记住唯一准则只对本地未推送的提交执行变基就能既享受整洁历史又避免团队协作问题。