git log提交日志中括号内的replaced标识是什么含义?
git log 提交记录中 replaced 标识的含义和触发场景
标识含义
replaced是Git替换机制的提示标记,代表当前日志中显示的哈希为3a1a6bfbd936ea441ecf1f071e82f89c7e8bbf6c的提交,已经被本地Git规则替换为了其他提交的内容,你看到的提交内容不是该哈希对应的原始提交内容。
触发场景
- 主动执行过
git replace命令:Git内置的git replace功能支持在不修改整条提交链、不重写历史的前提下,临时将某个提交的内容替换为另一个提交的内容,多用于临时修复历史提交问题、验证历史修改效果等场景,执行该命令后对应的提交旁就会出现replaced标识。 - 拉取的远程仓库携带替换规则:如果远程仓库上传了
.git/refs/replace/路径下的替换引用配置,你拉取代码后本地会继承该规则,对应提交也会显示该标识。 - 历史改写工具自动生成:执行
git filter-repo、git filter-branch这类批量改写提交历史的工具时,部分操作模式会自动生成替换引用,避免原始提交被直接覆盖,此时也会出现该标识。
你可以执行git replace --list查看本地所有生效的替换规则,执行git replace -d 3a1a6bfbd936ea441ecf1f071e82f89c7e8bbf6c即可删除对应替换规则,恢复该提交的原始内容。
内容的提问来源于stack exchange,提问作者Wenfang Du
相关产品推荐
相关产品推荐

