将git repo的根目录移动到文件夹层次结构中的一个级别,同时保留历史记录

时间:2016-08-22 21:48:27

标签: git

所以我在这个结构中有一个git repo:

app
    app_one
    app_two
    app_three

git repo root在app中。我想要的只是一个包含app_one,app_two,app_three的文件夹。

app_one
app_two
app_three

但需要注意的是,我希望在保持文件的当前历史记录的同时执行此操作。 Aka当我将此更改推送到github时,我不希望所有内容都显示它已在3秒前更新。

1 个答案:

答案 0 :(得分:4)

  

我想在保持文件的当前历史记录的同时执行此操作。

最简单(也是最好的IMO)方式:

git mv app_one app_two app_three .
git commit

您仍然可以访问每个文件夹中所有文件的完整更改历史记录。

  

我不希望所有内容都显示它已在3秒前更新。

这需要使用git filter-branchgit rebase完全重写提交历史记录。如果有其他开发人员在现有分支机构工作,这些都是危险的。而且,他们需要花费更多的时间和精力。上述解决方案适用于更多情况。

有关跨文件移动查看历史记录信息的信息,请参阅this question