I know there are thousands of threads for this question.
But I found out something really weird.
If you create a project on GitHub, do some commits.
Let's say commit 1, 2, 3, 4, 5.
Later, you realize you want to change something into commit 3.
As you were working in your own branch, no problem to rewrite history.
So let's do this: (based on this stackoverflow answer)
git rebase --interactive 'bbc643cd^'
// Modify 'pick' to 'edit' into interactive prompt and :
git commit --all --amend --no-edit
git rebase --continue
git push -f
Great! The mistake is corrected.
The history has been rewritten, so the commit bbc643cd
is now lkqjfhchc
.
You can check the source on your GitHub and everything will have been updated.
But someone can still find it on GitHub!
Access the URL: https://github.com/your-nickname/your-project/commit/bbc643cd... (full commit hash) and you will find it!
How could we remove this commit for good?
Thanks for any help!
I contacted Github staff from here : https://github.com/contact
Here's the answer (I couldn't do anything about it, no prune, no gc, etc)
So you just have to wait or contact staff to force garbage collector in case you have the same problem !
According to your additional comments :
You did everything as it should be.
The point is this: git never lose data unless you tell it to (whats known as
gc
- garbadge collector)The files will remain there until they will gc will be called.
This is called
dangling file
You can see all the dangling references locally with this:
The only way to get rid of it is to run gc
Here you can read some more about it.