You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Git中基于指定提交历史创建与另一提交文件完全一致的新提交?

实现符合要求的提交X

完全可以做到,按照你偏好的操作思路,具体步骤如下:

  1. 切换到提交C'对应的分支(如果C'是游离提交,直接用git checkout C'进入分离头指针状态即可):
git switch C'
  1. 检出提交C的所有文件,覆盖当前工作区和暂存区:
git checkout C -- .

这条命令会把C中的所有文件同步到当前环境,自动处理新增、修改和删除——比如C里没有aa.txt/bb.txt/cc.txt,这些文件会从当前工作区被移除,最终工作区内容和C完全一致。

  1. 创建提交X:
git commit -m "同步提交C的文件内容"

效果说明

  • 提交X的父节点是C',因此提交历史会完整保留A' → B' → C' → X的链路,不会丢失A'、B'、C'的提交记录。
  • X的文件内容和提交C完全相同,包含a.txt、b.txt、c.txt,同时不包含C'中的aa.txt、bb.txt、cc.txt。
  • 全程没有使用你禁止的git reset --hard或git merge命令,完全匹配你想要的实现方式。

内容的提问来源于stack exchange,提问作者kensuke1984

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 07:23:10