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

如何在git中重命名文件夹,并使用交互式重基隐藏它?,git,git-rebase,Git,Git Rebase,我有一个项目,在项目过程中,我意识到我不喜欢目录的名称 在GIT中,我们可以重命名目录,然后提交,但历史记录仍将显示较旧的文件夹 我想将名称更改重新设置为较早的提交。所以我通常会做的是: git rebase -i origin/master 然后将文件夹重命名提交移到顶部。 然而,正如预期的那样,git将产生许多需要解决的冲突 是否有一种更自动化的方法来执行此操作?如果您还没有与任何人共享某个内容,我推断这是因为您正在尝试重新设置其基础,我会删除包含重命名的提交,并执行筛选器分支 假设foo

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

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

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

git rebase -i origin/master
然后将文件夹重命名提交移到顶部。
然而,正如预期的那样,git将产生许多需要解决的冲突


是否有一种更自动化的方法来执行此操作?

如果您还没有与任何人共享某个内容,我推断这是因为您正在尝试重新设置其基础,我会删除包含重命名的提交,并执行筛选器分支

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

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

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

据我所知,您不能自动执行此操作。如果GIT可以自动执行,它不会抛出冲突。另外,您看到了什么样的冲突?很可能它们与重命名没有直接关系。我在以后的提交中将新类添加到树中,这些添加显示为冲突。