mirror of
https://github.com/tildeclub/site.git
synced 2026-08-25 19:59:24 +00:00
Software words and website words are capitalized (or, as another option, all caps), articles in the "tilde.club" category must have most words capitalized (may capitalize word in case of doubt), and the rest of the titles must have first word, of the title, capitalized, with the rest of the (non-software) words, of the title, all lowercase. Signed-off-by: keyboardan <keyboardan@tilde.club>
128 lines
2.7 KiB
Markdown
128 lines
2.7 KiB
Markdown
---
|
||
title: Using Cgit on Tilde.club
|
||
author:
|
||
- deepend
|
||
- keyboardan
|
||
category: tutorials
|
||
---
|
||
|
||
`cgit` gives every Tilde.club member a simple, read‑only web view of their public Git repositories.
|
||
Any repo you put in `~/public_git/` and end with `.git` is automatically shown at
|
||
|
||
```
|
||
https://tilde.club/~<username>/git/
|
||
```
|
||
|
||
Below is the quick‑start plus a few tips.
|
||
|
||
---
|
||
|
||
## 1. Create the **public\_git** directory (once)
|
||
|
||
```bash
|
||
$ mkdir -p ~/public_git
|
||
```
|
||
|
||
The web server is already allowed to traverse `~/public_git`, so you do **not** have to chmod anything manually.
|
||
|
||
---
|
||
|
||
## 2. Add a repository
|
||
|
||
Only **bare** repos are accepted (they have no working tree inside them).
|
||
|
||
```bash
|
||
# create a brand‑new bare repository
|
||
$ cd ~/public_git
|
||
$ git init --bare hello.git
|
||
```
|
||
|
||
or push an existing project:
|
||
|
||
```bash
|
||
$ cd ~/my/project
|
||
# add tilde as a remote and mirror‑push everything
|
||
$ git remote add tilde ssh://<username>@tilde.club/~/public_git/project.git
|
||
$ git push --mirror tilde
|
||
```
|
||
|
||
You can repeat for as many repos as you like; just keep each one directly in
|
||
`~/public_git/` and make sure the name ends with `.git`.
|
||
|
||
---
|
||
|
||
## 3. Browse your repos
|
||
|
||
```
|
||
Index page : https://tilde.club/~<username>/git/
|
||
Single repo : https://tilde.club/~<username>/git/<repo>.git/
|
||
```
|
||
|
||
Example for user **deepend**:
|
||
|
||
```
|
||
https://tilde.club/~deepend/git/ # lists everything
|
||
https://tilde.club/~deepend/git/hello.git/ # specific repo
|
||
```
|
||
|
||
The header will say `~deepend Git Repositories`, commits are clickable, diffs
|
||
are highlighted, and the cloning URL is shown near the top right.
|
||
|
||
---
|
||
|
||
## 4. Update a repository
|
||
|
||
Because the repo is bare you **push** into it; cgit shows the new state
|
||
immediately.
|
||
|
||
```bash
|
||
$ git push tilde main # normal
|
||
$ git push --mirror tilde # full mirror (branches + tags)
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Remove a repository
|
||
|
||
Simply delete or rename the directory:
|
||
|
||
```bash
|
||
$ rm -rf ~/public_git/oldstuff.git
|
||
```
|
||
|
||
The entry disappears from the index on the next page load.
|
||
|
||
---
|
||
|
||
## FAQ
|
||
|
||
### Can I hide a repo from the list?
|
||
|
||
Move it somewhere else in your home directory or make it non‑bare.
|
||
`cgit` only scans `~/public_git/*.git`.
|
||
|
||
### Why bare repos only?
|
||
|
||
Internal `.git/` directories inside non‑bare repos confuse cgit’s scanner and
|
||
produce broken links like `/repo.git/.git/`.
|
||
Bare repos avoid that and are the normal way to publish Git over HTTP.
|
||
|
||
### Clone / pull URL?
|
||
|
||
Use SSH for write access:
|
||
|
||
```
|
||
ssh://<username>@tilde.club/~/public_git/<repo>.git
|
||
```
|
||
|
||
or plain HTTPS for read‑only:
|
||
|
||
```
|
||
https://tilde.club/~<username>/git/<repo>.git
|
||
```
|
||
|
||
---
|
||
|
||
Happy hacking, and show off your code!
|
||
Questions? `#club` on irc.newnet.net or mail **[root@tilde.club](mailto:root@tilde.club)**.
|