summaryrefslogtreecommitdiff
path: root/content/blog/2024/multiple-git-repos-single-dir.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/blog/2024/multiple-git-repos-single-dir.md')
-rw-r--r--content/blog/2024/multiple-git-repos-single-dir.md50
1 files changed, 50 insertions, 0 deletions
diff --git a/content/blog/2024/multiple-git-repos-single-dir.md b/content/blog/2024/multiple-git-repos-single-dir.md
new file mode 100644
index 0000000..8a2f612
--- /dev/null
+++ b/content/blog/2024/multiple-git-repos-single-dir.md
@@ -0,0 +1,50 @@
++++
+title = "Cool things I didn't knew: multiple Git repositories in a single directory"
+author = ["MichaƂ Sapka"]
+date = 2024-10-29T22:51:00+01:00
+categories = ["blog"]
+draft = false
+weight = 2001
+image_dir = "blog/images"
+image_max_width = 600
+Abstract = "How to combine files from multiple repositories in one directory?"
+Listening = "John Coltrane - A Love Supreme"
++++
+
+I am trying to find a nice way to add sync to my org.
+I can't use any syncthing nor dropbox on my work computer, but I won't ever put google drive on my personal one.
+When asked on Mastodon, people proposed me to use git.
+
+I'm sure you know that `git worktree` allows you to have multiple branches available at the same time.
+But, did you knew that the `.git` folder, although standard, is not mandated?
+In fact, all your git data can live anywhere.
+
+First, you need a standard `.git` folder, so let's
+
+```shell
+git init
+mv .git .git-one
+```
+
+Now, if you `git status`, there won't be no git repository found.
+But we can force git to use our new dir
+
+```shell
+git --git-dir=.git-one status
+```
+
+This tricks allows us to have any number of git repositories co-exist in the same directory.
+Those can share files (just `git add` them), or be completely different.
+
+So, want to have a `work_org` and `private_org` side by side?
+No problem!
+
+Each repository has it own:
+
+- origin
+- staging area
+- history
+
+and so on.
+
+Pretty cool, I might add.