【发布时间】:2015-01-01 20:29:49
【问题描述】:
我使用已使用的The BFG 并按照描述的使用步骤清除了我的 repo 的大文件历史记录。所以我现在有一个干净的裸仓库准备好被推回 GitHub。
生产目录是该存储库的克隆。
由于 HEAD 受到保护,这是否意味着原则上,在推送到 GitHub 之后,我将能够拉入现有的 prod 克隆并获得“已经是最新的”。消息,然后如果有必要,我还可以从那个 prod repo 干净地推送回 GitHub?
或者,如果我制作热门的生产模式以推送到 repo,我会遇到麻烦吗? (这是一个非常古老的项目,有很多不好的做法。我让没有 git 技能的开发人员直接在 prod 中工作。)
【问题讨论】:
-
如果你重写了历史,那么你需要强制推送。但是我真的不明白您所说的“拉入此产品目录将无济于事,我可以直接从那里推回吗?”。为什么您需要从生产结账中推迟? (为什么这与您的问题有关?)
-
澄清了这个问题。我相信我推回 GitHub 的裸仓库会替换所有 refs(因此是强制推送?)。但后来我在生产中得到了这个现有的原始目录/repo 克隆,我将推入和拉出。使用 BFG,我在与原始产品 repo 无关的完全不同的位置重写了历史。所以我想确保我不会看到所有内容都“更改但未更新”。
-
好吧,您将无法更新您的产品结帐,因为它现在是完全不同的历史。您需要创建一个全新的结帐。
-
看来变基可以解决问题? help.github.com/articles/remove-sensitive-data