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

Git变基时变更错误归属至文件问题及解决方案咨询

Git变基时变更错误归属至非目标文件的Bug报告

问题概述

Git执行变基操作时存在错误:当仓库中存在内容完全相同的同名文件在不同子目录下,且父目录被重命名后,变基无法正确关联原修改的目标文件,导致变更被错误应用到路径不同但名称、初始内容一致的文件上。

复现场景

  • master分支中,parent_folder目录下的project_a和project_b各自包含内容完全相同的file.txt
  • 基于master创建feature_branch,修改parent_folder/project_b/file.txt的内容
  • 基于master创建refactor_branch,将parent_folder重命名为refactored_parent_folder
  • 将feature_branch变基至refactor_branch后,原本应归属到refactored_parent_folder/project_b/file.txt的变更,错误出现在refactored_parent_folder/project_a/file.txt中

复现脚本

#!/bin/bash

# 初始化测试仓库
mkdir git-rebase-bug-test && cd git-rebase-bug-test
git init

# 创建master分支的初始结构
mkdir -p parent_folder/project_a parent_folder/project_b
echo "Initial content" > parent_folder/project_a/file.txt
cp parent_folder/project_a/file.txt parent_folder/project_b/file.txt
git add .
git commit -m "Initial commit: identical files in project_a and project_b"

# 创建feature_branch并修改project_b的file.txt
git checkout -b feature_branch
echo "Modified content in project_b" > parent_folder/project_b/file.txt
git add parent_folder/project_b/file.txt
git commit -m "Modify file.txt in project_b"

# 创建refactor_branch并重命名父目录
git checkout master
git checkout -b refactor_branch
git mv parent_folder refactored_parent_folder
git commit -m "Rename parent_folder to refactored_parent_folder"

# 变基feature_branch到refactor_branch
git checkout feature_branch
git rebase refactor_branch

# 查看变更结果
echo "=== 查看refactored_parent_folder/project_a/file.txt内容 ==="
cat refactored_parent_folder/project_a/file.txt
echo "=== 查看refactored_parent_folder/project_b/file.txt内容 ==="
cat refactored_parent_folder/project_b/file.txt

验证环境

  • 操作系统:Linux
  • Git版本:2.34.1、2.43.2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 12:15:57