How to manage package upgrades? Ensuring that removed resources are deleted when using `helm template`

I’m new to Kubernetes. I dislike the practice of using helm install, although I understand that the benefit is that it keeps track of removed resources between versions.

Instead, I prefer to use helm template. The output is readable, and can be committed to git. This allows inspection of differences between versions.

Using kubectl apply is easy enough for upgrades.
But this doesn’t delete absent (removed) resources.
I assume that helm upgrade does this.

But are there other tools or practices to achieve this?

The desired effect is to have something like terraform apply, which also deletes removed resources.