BitCoin provides anonymity but not unlinkability. This mean that BitCoin transactions are public and can be traced.
Link a BitCoin address to a real identity is not easy and there isn't a standard procedure to do that. But there are many approaches of how someone could try to know to what person one address belongs.
For example, when you send money to an exchange or make a payment, you're linking your address with your identity. So, the exchange or the person that you're paying, now they know that you're the owner of that address. The goverment may have a legal way to demand for that information to an exchange, for example. Note that the addresses used by exchanges are often of public knowledge and there are studies about that, but your identity is not compromised, except that the exchange is hacked.
There are also other ways to try to identify someone's addresss. And there are ways to try to mix BitCoin payments so they can't be traced. If you want full anonymity and unlinkability, you should use other coins as Monero.
If you want to know more about this complex topic, I recommend this lecture.