Mat*_*fou 4 git git-filter-branch
我想将 git 存储库中的所有内容向上移动一级,并且需要将其应用于我拥有的每个分支。从字面上看,我有:
+--repo
+----+.git
+----+folder
+--------+ A
+--------+ B
Run Code Online (Sandbox Code Playgroud)
我只想:
+--repo
+----+.git
+----+A
+----+B
Run Code Online (Sandbox Code Playgroud)
这篇文章如何将所有 git 内容在文件夹层次结构中向上移动一级?有一个很好的答案,建议这样做:
git mv folder/* ./ -k
Run Code Online (Sandbox Code Playgroud)
现在我如何处理所有分支?我能想到:
为主人做git mv,然后git rebase为所有人,在主人上
git mv为所有分支做吗?
一个比另一个有优势吗?我也看到了一些基于git filter-branch --index-filter(answer here ) 的答案,但不明白如何将其应用于我的案例。
谢谢!
我会使用newgit filter-repo,它确实取代了旧的git filter-branch或 BFG。
自带很多用法示例,包括基于路径的过滤,以便您将文件夹内容移动到顶部(假设顶部目录仅包含文件夹)
cd /path/to/second/clone
git filter-repo --path-rename folder/:
Run Code Online (Sandbox Code Playgroud)
默认情况下,git filter-repo适用于所有分支。
| 归档时间: |
|
| 查看次数: |
235 次 |
| 最近记录: |