site/wiki/source/cgit.md

126 lines
2.7 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: using cgit on tilde.club
author: deepend
category: tutorials
---
`cgit` gives every tilde.club member a simple, readonly 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 quickstart plus a few tips.
---
## 1Create 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.
---
## 2Add a repository
Only **bare** repos are accepted (they have no working tree inside them).
```bash
# create a brandnew 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 mirrorpush 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`.
---
## 3Browse 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.
---
## 4Update 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)
```
---
## 5Remove 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 nonbare.
`cgit` only scans `~/public_git/*.git`.
### Why bare repos only?
Internal `.git/` directories inside nonbare repos confuse cgits 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 readonly:
```
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)**.