From cc619cbbbaef5f57d7e97f6857488d539ed082f9 Mon Sep 17 00:00:00 2001 From: gitolite admin setup Date: Sat, 22 Aug 2026 18:52:41 +0200 Subject: Initial docs: creating repos, importing codebases, going public --- importing-an-existing-codebase.md | 56 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 importing-an-existing-codebase.md (limited to 'importing-an-existing-codebase.md') diff --git a/importing-an-existing-codebase.md b/importing-an-existing-codebase.md new file mode 100644 index 0000000..84dd215 --- /dev/null +++ b/importing-an-existing-codebase.md @@ -0,0 +1,56 @@ +# Importing an existing codebase + +Same repo-creation mechanism as +[creating-a-repo-from-scratch.md](creating-a-repo-from-scratch.md) — the +only difference is you already have code and possibly existing git +history, so you're pointing an existing local repo at gwaihir instead of +starting from an empty clone. + +## Case A: your project is already a git repo + +```bash +cd my-existing-project +git remote add origin git@git.veltar.systems:personal/bryan/my-existing-project +git push -u origin --all # pushes every local branch +git push --tags # if you have tags worth keeping +``` + +The first push creates `personal/bryan/my-existing-project` on the +server, with your full existing history intact. + +If the project already has a remote called `origin` pointing elsewhere +(e.g. GitHub) and you want to keep both, use a different remote name: + +```bash +git remote add gwaihir git@git.veltar.systems:personal/bryan/my-existing-project +git push -u gwaihir --all +``` + +## Case B: your project isn't a git repo yet + +```bash +cd my-existing-project +git init +git add . +git commit -m "Initial import" +git remote add origin git@git.veltar.systems:personal/bryan/my-existing-project +git push -u origin master # or main +``` + +## Mirroring a repo exactly (all branches, tags, refs, as-is) + +If you want a byte-for-byte mirror (e.g. migrating a repo wholesale) +rather than just pushing your current checkout: + +```bash +git clone --mirror my-existing-project.git +cd my-existing-project.git +git push --mirror git@git.veltar.systems:personal/bryan/my-existing-project +``` + +## After importing + +Same as any other repo you create — you own it (`RW+`), you can grant +others access with `ssh git@git.veltar.systems perms ...` (see the other +doc), and it's private/SSH-only unless you ask an admin to add it to +cgit (see [making-a-repo-public.md](making-a-repo-public.md)). -- cgit v1.2.3