我正在研究两个分支A和B.在主分支上,我决定删除占用项目历史记录空间的一些大型二进制文件。我这样使用:在分支上的从历史记录中删除文件后的Rebase分支
git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch "Filename"' \
--prune-empty --tag-name-filter cat -- --all
(来自this site)。
然而,在这样做之后,我又回到了B分支上工作,这个B分支没有重写历史。这导致了以下承诺树
+----+ +----+ +----+
| A1 |->| A2 |---------------->| A5 |
+----+ +----+ +----+
+----+ +----+ +----+ +----+ /
| B1 |->| B2 |->| B3 |->| B4 |--/
+----+ +----+ +----+ +----+
其中A1和A2是相同的提交B1和除了缺少的二进制文件B2。我怎么能删除从B二进制文件以及并提交树是这样的:
+----+ +----+ +----+
| A1 |->| A2 |---------------->| A5 |
+----+ +----+ +----+
\ +----+ +----+ /
\->| B3 |->| B4 |--/
+----+ +----+