I have an existing git repository having large number of ".bmp" files scattered across multiple folders. I want to update this repository so that is uses Git-LFS. Is there a way to do this without losing all the commit history? While searching regarding this I came across a tool BFG Repo-Cleaner. But does this tool maintain the commit history of the said repository?
I don't know what you mean by "maintain the commit history"...
You must know that git is based on hash (sha1) that "seal" the commit. If one of the data of a commit change, the sha1 of the commit change. And because commits are linked all the sha1 of the children commits changes also.
As a consequence, the history will change and you will annoy all the users of the repository if you force push the changes done by BFG.
That's why you should think twice if it worth to do it. But if you think it is, do it... with care ;-)