Show HN

git-dupe

by @WayHow

git-dupe – Version private files alongside a public Git repo Hi HN! I made git-dupe to solve the problem where I have notes, skills, and agent instructions that are part of my personal workflow, so I do not want them committed to the public repo, but at the same time, I want them to be in the project at the correct locations (e.g., AGENTS.md file locations matter), and these files cannot be simply gitignored because I want versioning for them. The solution that I've come upon is versioning those agent files in another repo, say <private-repo> (this repo is private to me and holds the history for my agent files). The project itself is open to the public in another <public-repo>. I overlap the two repos to solve the problem (i.e., they share the same worktree). $ git status --short # the public repo ?? AGENTS.md ?? notes/ $ git dupe init # the private repo Initialized empty Git repository in /home/brian/code/project/.git/dupe/ $ git dupe add notes/ AGENTS.md # the private repo hint: notes is now hidden from the project's Git; run from the root, 'git dupe unhide -- notes' stops hiding it $ git dupe commit -m "Notes and agent instructions" # the private repo [main (root-commit) 3eb3af9] Notes and agent instructions 3 files changed, 3 insertions(+) create mode 100644 .gitdupe create mode 100644 AGENTS.md create mode 100644 notes/todo.md $ git status --short # the public repo: nothing $ git dupe log --oneline # the private repo: your files 3eb3af9 Notes and agent instructions In short, git-dupe allows two Git repos to share the same worktree, while using native Git for most operations. Most git-dupe commands behave just like normal Git commands, operating on the private repo instead. git-dupe currently supports Linux and macOS, and is under the MIT License; the git-dupe repo contains much more extensive technical documentation documentation for those who are interested. If you have any feedback/questions about git-dupe, feel free to message. I hope it helps! Fun fact: the git-dupe project itself is using git-dupe for versioning.

Discover more builders

Builderlust is an endless, joyful scroll of real projects people are shipping right now. Get the app to keep finding your next spark of inspiration.

📱 Coming soon to iOS & AndroidOpen in the app