小编Bor*_* V.的帖子

无效BFG使用后Git合并重复

我已经被整个存储库深深地淹没了(仅由我使用)并且可以使用一些帮助来整理它.

这就是我做的.我意识到在我的提交历史中,有一些文件包含我不想放置的凭据.因此,我决定合法并尝试使用BFG Repo-Cleaner来解决这些问题.我把所有凭据都放在.gitignores中,然后继续试图将它们从历史中删除.根据文档说明,我执行了以下命令:

git clone --mirror myrepo.git
java -jar bfg.jar --delete-files stuffthatshouldbedeleted.txt  myrepo.git
Run Code Online (Sandbox Code Playgroud)

此时,BFG告诉我已经找到并删除了x个文件.甜.

cd myrepo.git
git reflog expire --expire=now --all
git gc --prune=now --aggressive
git push
Run Code Online (Sandbox Code Playgroud)

根据终端日志,它更新了回购.到目前为止一切都那么好吧?我弹出我的github帐户,点击几下后,在我的历史记录中找到仍然存在的凭据,文件和所有凭据.我回去尝试相同的命令集,但使用此行而不是文件移除器:

java -jar bfg.jar --replace-text passwords.txt  myrepo.git
Run Code Online (Sandbox Code Playgroud)

其中passwords.txt是一个包含我想要的所有凭据的字符串实例的文件.同样,BFG日志表明它已经修复了几个实例.我推了推,检查,凭证仍在那里,坐在Github.我注意到我所有提交的SHA-1密钥都被更改了,所以假设BFG做了一些事情,而不是我想要它做的事情.

在这一点上,我放弃并尝试重新开始工作,我想稍后会解决这个问题.我做了一些工作,试图推高,得到一个奇怪的合并冲突(你提前50,提交50后).什么?我尝试拉动和合并,突然之间,我的git历史中的每个提交都在名称中重复,其中一些只是空白.我查看了我的Github网络图,看起来有一个第二个分支从我的初始提交开始,它完全反映了我在上一次提交时已经拉链的所有提交(我从未分支,只是线性地匆匆忙忙).

我无法恢复到先前的提交,因为它们都是按时间顺序重复的.我的凭据仍在那里,现在的实例数是原来的两倍,而且我的历史翻了一倍,并且试图理解这一点非常困惑.当我尝试从现在开始运行BFG,克隆并重新镜像repo时,它告诉我它没有凭据,尽管我可以在Github中看到它们.我真的可以帮助理解发生了什么,以及如何,如果有的话,我可以再次回到状态.

我正在考虑删除整个回购并重新开始.我真的不想那样做.

tldr; 尝试使用BFG,在我的仓库中以某种方式复制了所有提交的半成品版本,无法解开,并且加重了伤害,BFG什么也没做,并声称它完成了它的工作.

git merge github git-rewrite-history bfg-repo-cleaner

7
推荐指数
1
解决办法
1891
查看次数