Show HN: git-dupe – Version private files alongside a public Git repo

  • Posted 23 hours ago by WayHow
  • 3 points
https://github.com/BrianWeiHaoMa/git-dupe/tree/main
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.

0 comments