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

时间:2013-03-11 22:08:39

标签: git git-rebase

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

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

我想将名称更改重新命名为先前的提交。所以我通常会做的是:

git rebase -i origin/master

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

有更自动化的方法吗?

1 个答案:

答案 0 :(得分:4)

如果它还没有与任何人共享,我推断它是因为你无论如何都要重新设置它,我会删除包含重命名的提交,并做一个filter-branch。

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

git reset --hard HEAD^ # removes the rename commit
git filter-branch --tree-filter "mv bad good" foo^..HEAD

这会将坏目录重命名为。