Rinse the eggplant and pat dry. Brush it with little oil all over. Then make few slits all over the eggplant with a knife. In 3 of those slits, insert a large clove of garlic. Put the eggplant directly on heat and roast, turning often for around 10-12 minutes until completely roasted.
Once roasted (to check if its done, insert a knife inside the eggplant, it should go easily) use a pair of tongs to remove the eggplant from heat and wrap in an aluminium foil to cool.
Once cooled, remove the skin. Meanwhile also chop the roasted garlic.
Transfer the roasted eggplant to a bowl and mash using a fork or potato masher. Set it aside.
Heat oil in a pan on medium heat. Once the oil is hot, add chopped garlic (different from the ones used while roasting the eggplant), ginger and green chili. Saute until they start changing color, around 2 minutes.
Then add in the chopped onion and cook for 2-3 minutes until softened. Don't brown them.
Add the chopped tomatoes and mix. Cook the tomatoes for around 5 minutes until very soft and you notice oil oozing out of the masala.
Add the mashed roasted eggplant into the pan along with the chopped roasted garlic and mix well.
Add the red chili powder and mix. Also add the coriander powder and salt and mix to combine. Cook the bharta for another 5 minutes on medium-low heat, stirring often.
Stir in the chopped cilantro and mix. Remove pan from heat.