You can run git reset all day. You can wipe the branch, rewrite history, squash, and force push. But if the history contained personal data, and it left your local machine, you have a GDPR problem. The General Data Protection Regulation doesn’t care that you hit reset — it cares that the sensitive data exists anywhere it shouldn’t. And in Git, that includes reflogs, stale clones, forks, backups, caches, CI logs, mirror repos, and more.
Here’s the quiet truth: git reset is not GDPR compliance. It’s like hiding the front page but leaving the archives open. Once personal data enters your repo, it persists in ways that normal workflows don’t wipe. If that data includes names, emails, IP addresses, financial info, or anything legally protected, you need a full removal plan.
True removal means scanning commit history, identifying sensitive content in blobs, trees, and tags, and rewriting history across all copies. That can mean force-pushing cleaned branches, cleaning tags, invalidating caches, and purging old CI build artifacts. Every location where a clone or mirror might exist must be accounted for. You must also confirm destruction with all stakeholders who ever pulled the repo.
For GDPR compliance, you must prove the data is gone. Auditors may ask for evidence. Regulators may demand timelines. That means logs of deletion activities, commit SHAs before and after rewrite, and proof that downstream systems have been updated or wiped.