Alb*_*ert 10 git git-filter-branch
即,我有:
root -- c1 -- c2 -- .. - c1000 -- c1001 -- c1002 -- .. -- c2000 -- top
Run Code Online (Sandbox Code Playgroud)
我希望:
root = c1000 -- c1001 -- c1002 -- .. -- c2000 -- top
Run Code Online (Sandbox Code Playgroud)
怎么样?
(我想我可以通过git filter-branch,但究竟是怎么做的?)
(当然我知道这意味着历史改写...)
我发现以下用于创建具有不同根目录的新存储库非常有用(当您在提交之前说删除历史记录时,我认为您会问这个问题):
git fast-export master~5..master | (cd ../newrepo.git && git init . && git fast-import && git checkout)
Run Code Online (Sandbox Code Playgroud)
(您也可以在同一个回购中执行上述操作)
最简单的方法是使用 git 移植。如果编辑文件 .git/info/grafts,您可以将行放入以下格式的文件中
[ref] [parent1] [parent2] ...
然后,左侧引用的任何提交都将被视为右侧列出的父项是该提交的父项。所以你可以插入一行像
c1000
它将被视为没有父母。然后可以通过运行 git-filter-branch 来“一成不变”。
| 归档时间: |
|
| 查看次数: |
2421 次 |
| 最近记录: |