如何在 git 中重命名文件夹并使用交互式 rebase 隐藏它?

Arc*_*ano 6 git git-rebase

我有一个项目,在项目过程中我意识到我不喜欢目录的名称。

在 GIT 中,我们可以重命名目录然后提交,但历史记录仍会显示较旧的文件夹。

我想将名称更改重新设置为较早的提交。所以我通常会做的是:

git rebase -i origin/master
Run Code Online (Sandbox Code Playgroud)

然后将文件夹重命名提交移到顶部。
然而,正如预期的那样,git 会产生很多需要解决的冲突。

有没有更自动化的方法来做到这一点?

小智 6

如果这是您尚未与任何人共享的内容,我推断这是因为您无论如何都在尝试对其进行变基,我将删除包含重命名的提交,并执行过滤器分支。

假设 foo 包含第一次出现的错误目录,并且您的重命名是最新的提交:

git reset --hard HEAD^ # removes the rename commit
git filter-branch --tree-filter "mv bad good" foo^..HEAD
Run Code Online (Sandbox Code Playgroud)

这会将坏目录重命名为好。