Update README.md

This commit is contained in:
Lenrui committed 2026-11-06 21:01:01 +00:00
1 parent 6661cb4940
commit 41b2f67c4a
1 file changed
+58 -58
+58 -58
View File
@@ -17,64 +17,6 @@ A GitHub Desktop-style git client that runs in your terminal. Use the mouse or t
4. **Your name and email:** the first time you commit or create a repository, gitdesk asks
for them if git doesn't know them yet. They're saved for all your repositories.
## Set up SSH for git (Windows, optional)
`git-ssh-setup.ps1` sets up SSH, so pushes and Git LFS don't ask for your passphrase
every time. It's handy when HTTPS pushes are refused as too big (see **Push over SSH** below).
**Run it:** double-click `git-ssh-setup.cmd`. Run it as your normal user, not
"Run as administrator". From PowerShell, use:
```
powershell -NoProfile -ExecutionPolicy Bypass -File .\git-ssh-setup.ps1
```
The bypass applies to that one run only. Your system's execution policy isn't changed.
It asks for the SSH host. You can type `git.example.com`, `git.example.com:2222`, or paste an
SSH clone URL. Next time it offers the host you used last: press Enter to keep it, or type
another one to set up a second server. Then it:
1. turns on Windows' `ssh-agent` service. This step shows a UAC prompt, and only when the
service needs turning on. If the OpenSSH client is missing, it installs that too.
2. creates an ed25519 key `~/.ssh/id_ed25519_gitea` (it asks for a passphrase), or reuses the
one that's already there.
3. loads the key into ssh-agent. Windows keeps it loaded across reboots.
4. adds a `Host` entry for the server to `~/.ssh/config`. If one already exists, it leaves it
alone and shows what it would have written.
5. points git at Windows' OpenSSH (`core.sshCommand`), so git uses the agent. It also sets
`lfs.ssh.automultiplex false`, which stops Git LFS transfers over SSH from hanging.
6. shows your public key and copies it to the clipboard. Add it in Gitea: your avatar >
Settings > SSH / GPG Keys > Add Key.
7. verifies the key in Gitea (optional). Click **Verify** next to the key, paste the token
into the script, then paste the signature it copies back into Gitea.
8. tests the connection with `ssh -T`.
You can run it again safely. It reuses the key, doesn't add it to the agent twice, and never
changes an existing `~/.ssh/config` entry.
| Option | What it does |
|---|---|
| `-HostName git.example.com` | Skips the host prompt. `-HostName ""` skips the config entry and the test. |
| `-Port 2222` | SSH port (default 22). |
| `-User git` | SSH user (default `git`, which is right for Gitea, GitHub and GitLab). |
| `-KeyName id_ed25519_github` | Key file name in `~/.ssh` (default `id_ed25519_gitea`). |
| `-Comment "label"` | Label shown in Gitea's key list (default `user@computer`). |
| `-Force` | Replaces the existing key instead of reusing it. |
| `-NoVerify` | Skips the Gitea verify step (e.g. for GitHub). |
| `-Token <hex>` | Signs this Gitea verify token without asking for it. |
| `-NoTest` | Skips the connection test. |
Gitea's verify token expires quickly. If Gitea rejects the signature, click **Verify** again
and run it again with only the new token:
```
powershell -NoProfile -ExecutionPolicy Bypass -File .\git-ssh-setup.ps1 -NoTest -Token <new token>
```
If the site is behind Cloudflare's proxy, use a hostname or IP that reaches the server
directly. SSH doesn't go through the proxy.
## Build a standalone executable (optional)
This makes a single file that runs without Python or Textual installed.
@@ -182,3 +124,61 @@ Tip: put this folder on your PATH (Windows), or symlink it on Linux/macOS
Keys: `f` fetch · `p` pull · `u` push · `b` branch · `s` stash · `t` stashes · `d` discard ·
`o` add local repo · `n` new repo · `c` clone · `g` view on web · `l` log · `r` refresh · `space` tick/untick file · `m` file menu · `q` quit
## Set up SSH for git (Windows, optional)
`git-ssh-setup.ps1` sets up SSH, so pushes and Git LFS don't ask for your passphrase
every time. It's handy when HTTPS pushes are refused as too big (see **Push over SSH** below).
**Run it:** double-click `git-ssh-setup.cmd`. Run it as your normal user, not
"Run as administrator". From PowerShell, use:
```
powershell -NoProfile -ExecutionPolicy Bypass -File .\git-ssh-setup.ps1
```
The bypass applies to that one run only. Your system's execution policy isn't changed.
It asks for the SSH host. You can type `git.example.com`, `git.example.com:2222`, or paste an
SSH clone URL. Next time it offers the host you used last: press Enter to keep it, or type
another one to set up a second server. Then it:
1. turns on Windows' `ssh-agent` service. This step shows a UAC prompt, and only when the
service needs turning on. If the OpenSSH client is missing, it installs that too.
2. creates an ed25519 key `~/.ssh/id_ed25519_gitea` (it asks for a passphrase), or reuses the
one that's already there.
3. loads the key into ssh-agent. Windows keeps it loaded across reboots.
4. adds a `Host` entry for the server to `~/.ssh/config`. If one already exists, it leaves it
alone and shows what it would have written.
5. points git at Windows' OpenSSH (`core.sshCommand`), so git uses the agent. It also sets
`lfs.ssh.automultiplex false`, which stops Git LFS transfers over SSH from hanging.
6. shows your public key and copies it to the clipboard. Add it in Gitea: your avatar >
Settings > SSH / GPG Keys > Add Key.
7. verifies the key in Gitea (optional). Click **Verify** next to the key, paste the token
into the script, then paste the signature it copies back into Gitea.
8. tests the connection with `ssh -T`.
You can run it again safely. It reuses the key, doesn't add it to the agent twice, and never
changes an existing `~/.ssh/config` entry.
| Option | What it does |
|---|---|
| `-HostName git.example.com` | Skips the host prompt. `-HostName ""` skips the config entry and the test. |
| `-Port 2222` | SSH port (default 22). |
| `-User git` | SSH user (default `git`, which is right for Gitea, GitHub and GitLab). |
| `-KeyName id_ed25519_github` | Key file name in `~/.ssh` (default `id_ed25519_gitea`). |
| `-Comment "label"` | Label shown in Gitea's key list (default `user@computer`). |
| `-Force` | Replaces the existing key instead of reusing it. |
| `-NoVerify` | Skips the Gitea verify step (e.g. for GitHub). |
| `-Token <hex>` | Signs this Gitea verify token without asking for it. |
| `-NoTest` | Skips the connection test. |
Gitea's verify token expires quickly. If Gitea rejects the signature, click **Verify** again
and run it again with only the new token:
```
powershell -NoProfile -ExecutionPolicy Bypass -File .\git-ssh-setup.ps1 -NoTest -Token <new token>
```
If the site is behind Cloudflare's proxy, use a hostname or IP that reaches the server
directly. SSH doesn't go through the proxy.