如何通过Git创建提交使分支B与A完全一致且保留B历史?
没问题,我来给你捋清楚怎么操作——既让B完全和A对齐,又保留B的完整历史,还能生成一个清晰的重置提交:
操作步骤
首先确保你当前没有未提交的工作(如果有,先执行git stash暂存或提交,避免内容丢失),然后按以下步骤执行:
- 切换到目标分支B:
git checkout B
- 将B的所有文件内容同步为A的状态:
git checkout A -- .
这一步会把A分支下的所有文件(包括内容、权限等属性)覆盖到B的工作区和暂存区,但不会自动删除B中存在但A没有的文件。
- 删除B中独有的文件和目录:
# 先预览要删除的内容(可选但推荐) git clean -fdn # 确认后执行删除 git clean -fd
参数说明:-f 强制删除未跟踪文件,-d 同时删除未跟踪目录,-n 仅预览不执行实际删除。
- 提交重置操作:
git commit -m "Reset branch B to match branch A exactly"
这个提交会完整记录所有将B调整为与A一致的变更——包括文件修改、新增A独有的文件、删除B独有的文件,后续查看历史时能清晰看到这一步的操作意图。
完成后,B分支的内容就和A完全一致了,同时保留了B之前的所有历史记录,且新增了一个明确的“重置”提交。
内容的提问来源于stack exchange,提问作者Michael Stum
相关产品推荐
相关产品推荐

