Shubman Gill fought hard to hit his second Test century in as many games since kickstarting his Test captaincy with a fine 147.