我的团队有两个回购:
在我们退休Bitbucket之前,我希望能够将Bitbucket的更改合并到Github。我刚刚完成第一次这样做,所以现在新的回购引用了旧版的历史。
合并在我的机器上成功,但我无法将其推送到Github,因为Github不会接受文件> 100MB。热闹的部分是我不需要违规的大文件,事实上它被删除就在我将Bitbucket/develop
合并到Github/develop
之后。它在HEAD
中不再存在并不重要,它在历史中,所以它被推送到Github。
这是一个风险很大的前景。这意味着每个处理旧Bitbucket回购的人都需要将他们所有的工作推到Bitbucket。然后我会进行清洗。 然后,一旦我完成,他们将不得不删除他们的整个本地克隆,并重新获得它。如果他们在此期间做任何工作,他们将不得不在新历史的基础上重新提交他们的提交。
有没有其他我不考虑的选择? 我可以以某种方式从较新的仓库历史中清除违规文件,同时仍然能够轻松地从一个仓库合并到另一个仓库吗?
答案 0 :(得分:2)
简答:没有
原因是每个Git ref都由一个SHA1哈希标识,该哈希相对于(其中包括)其内容是唯一的。
要删除该文件,您需要重写提交,这需要强制推送。