Removing files from past commits in GitHub repository with BFG Repo-Cleaner

我只是一个虾纸丫 提交于 2019-12-08 08:15:26

问题


I have a file in my GitHub repository that I would like to remove from my previous commits. I used BFG Repo-Cleaner's delete-files command and it appeared to work, but when I go on my GitHub repository the file is still on all the previous commits. If I try and do the command again, it gives me a

BFG aborting: No refs to update - no dirty commits found??

Am I misunderstanding how BFG works? If so how can I remove the file from my past commits on GitHub?

Here are the steps I took:

  1. Cloned a copy of my GitHub repo into a local folder using the --mirror flag.
  2. I then cd to my local visual studio project.
  3. I then entered in the command java -jar bfg-1.12.1.13.jar --delete-files <.json file I wanted to delete> <my local clone copy from step 1>.git
  4. I then entered in git reflog expire --expire=now --all && git gc --prune=now --aggressive
  5. Ran git push

回答1:


A git push alone should not work, since BFG repo cleaner does rewrite the history of a repo.

It should work though when you cloned (as you did) with --mirror, since, on git push, locally updated refs will be force updated on the remote end.

Note that:

By default the HEAD branch is protected, and while its history will be cleaned, the very latest commit (the 'tip') is a protected commit and its file-hierarchy won't be changed at all.

Don't forget to remove your file from your HEAD (current working tree) as well, before pushing back.

After discussion, it seems the commands were not executed in the right folder. That folder should end with .git: xxx.git: a clone --mirror is a bare repo.




回答2:


Skip step 2 in your steps and it should work (don't cd into your <repo-name>.git).

You need to run BFG from the folder that contains the folder <repo-name>.git. BFG is looking for a folder called <repo-name>.git in the working directory. That's why it didn't change anything.



来源:https://stackoverflow.com/questions/39682046/removing-files-from-past-commits-in-github-repository-with-bfg-repo-cleaner

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!