White has the kernel of a discovery on the c-file, but it's not yet in working order. The rook on c1, if unmasked, has nothing but a protected rook as a target, and the unmasking bishop likewise is unable to threaten anything more valuable than itself. But with the kernel in place, think hard about what it would take to make it succeed. Try saying “if only…” If only Black’s king were on the c file, White would have a discovered check and could take Black’s loose bishop with two moves. So now think about ways to move the king by attacking it with other pieces. The only useful piece for the purpose is White’s rook on d2. Can it give check? Yes, with Rd7+. Examine the move. Critically, it’s a fork of Black’s king and his loose bishop; if Black moves his king, he loses a piece. His only way to stop the check and also protect the bishop is by moving his rook onto the seventh rank: Rc7. Now what checks would White have, and with what results? RxR+, leading to KxR; and then—aha!—the king has been drawn onto the c-file. White unmasks a discovered check with Bf8+, winning the bishop on g8 after Black's king moves.
You could have seen all this as well by noticing that the bishop on g7 is loose and thus an important target. You look for forks that would attack it and find one in Rd7+; you imagine the reply Rc7 from Black; this invites an exchange of rooks on c7; put this together with the kernel of the discovery on the c-file and you are led back to the g7 bishop as a target—but this time as the target of a discovery rather than a fork.
Please excuse the absence of the White king from g1. He's having a break.