所以我在这个结构中有一个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秒前更新。
答案 0 :(得分:4)
我想在保持文件的当前历史记录的同时执行此操作。
最简单(也是最好的IMO)方式:
git mv app_one app_two app_three .
git commit
您仍然可以访问每个文件夹中所有文件的完整更改历史记录。
我不希望所有内容都显示它已在3秒前更新。
这需要使用git filter-branch
或git rebase
完全重写提交历史记录。如果有其他开发人员在现有分支机构工作,这些都是危险的。而且,他们需要花费更多的时间和精力。上述解决方案适用于更多情况。
有关跨文件移动查看历史记录信息的信息,请参阅this question。