[{"data":1,"prerenderedAt":9},["ShallowReactive",2],{"post-\u002Fblog\u002Fstash":3},{"path":4,"title":5,"description":6,"date":7,"rawbody":8},"\u002Fblog\u002Fstash","Git: The Double Agent","Open source without the shame.","2025-12-03","---\ntitle: 'Git: The Double Agent'\ndescription: 'Open source without the shame.'\ndate: '2025-12-03'\n---\n\nYour code works, but your commit history looks like a crime scene.\n\nYou want to go open source, but you don't want the world to see your 45 commits labeled \"fix\", \"wip\", and \"fuck this\". The solution isn't to code better; it's to lie better.\n\n> \"Perfection is just a series of mistakes you didn't commit.\"\n\n### The Setup\n\nKeep your trash in the dark. Your local repo will talk to two servers: one for the backup (dirty), one for the public (clean).\n\nRename your current remote and add the new destination:\n\n```bash\ngit remote rename origin private\ngit remote add public https:\u002F\u002Fgithub.com\u002Fyou\u002Frepo-opensource.git\n```\n\n### The Purge\n\nCreate a clean branch that has no memory of your past sins. When you are ready to release, squash your chaos into a single, composed update.\n\n```bash\n# Move to your clean branch\ngit checkout public-release\n\n# Smash everything from your dirty branch into one change\ngit merge --squash main\n\n# Commit the lie\ngit commit -m \"v1.0.0: Initial Release\"\n\n# Push the perfection\ngit push public public-release:main\n```\n\nThe public sees a genius. Only you know the truth.\n",1783267423470]