gitview
TUI estilo dockview para git/github: stage, branches, repos, history, PRs e navegação de arquivos do PC.
3 testes · 3 passou · 0 falhou · 0 skip
- test_mount_files_tab2.50s
- test_add_file_to_repo0.01s
- test_add_dir_preserves_structure0.01s
Entrypoints (CLI)
gitview
Módulos e funções principais
src/gitview/__init__.py
- —
src/gitview/cli.py
main()
src/gitview/gitlib.py
is_repo()current_branch()current_remote()default_branch()status()— Retorna arquivos do working tree (inclui não rastreados).stage()unstage()discard()
src/gitview/theme.py
- —
src/gitview/tui.py
- —
Estrutura de arquivos
- LICENSE
- README.md
- pyproject.toml
- src/gitview/__init__.py
- src/gitview/cli.py
- src/gitview/gitlib.py
- src/gitview/theme.py
- src/gitview/tui.py
- tests/test_tui.py
README
# gitview
TUI interativa para git/github, no estilo do **dockview** — navegável por
teclado, com abas para tudo que você faz no dia a dia com versionamento.
## Funcionalidades
- **Stage**: lista arquivos do working tree, marca com `space` o que vai
subir, faz commit e push sem sair da TUI.
- **Files**: navega o seu PC com uma árvore de diretórios; selecione um
arquivo ou pasta e aperte `a` para copiá-lo para o repo (já fazendo o
stage). Ótimo para puxar qualquer coisa do computador pro projeto.
- **Branches**: lista, cria, troca e apaga branches locais.
- **Repos**: lista seus repositórios no GitHub (`gh repo list`), cria novos
(`gh repo create`) e apaga (com confirmação — irreversível).
- **Repos (avançado)**: `A` cria um repo novo no GitHub **a partir de uma
pasta do seu PC** — inicializa git, commit inicial e push automáticos.
- **History**: log de commits locais com marcação do que já foi pusheado.
- **PRs**: lista e cria Pull Requests (`gh pr list` / `gh pr create`).
## Atalhos
| Tecla | Ação |
|-------|------|
| `tab` / `shift+tab` | trocar aba |
| `r` | atualizar |
| `space` | stage/unstage (aba Stage) |
| `c` | commit |
| `p` | push |
| `n` | nova branch |
| `b` | trocar branch |
| `d` | apagar branch |
| `N` | novo repo (GitHub) |
| `D` | apagar repo (GitHub) |
| `a` | adicionar arquivo/pasta selecionado (aba Files) ao repo |
| `A` | novo repo a partir de uma pasta do PC |
| `P` | novo PR |
| `q` | sair |
## Instalação
```bash
python3 -m venv .venv && . .venv/bin/activate
pip install -e .
```
Dependências: `textual>=8.2`. Requer `git` e `gh` (CLI do GitHub) autenticado
para as abas Repos/PRs.
## Uso
```bash
gitview # abre no repo do diretório atual
gitview /caminho/repo # abre um repo específico
```
## ⚠️ Aviso ético
Ferramenta de uso pessoal/educacional para gerenciar **seus próprios**
repositórios e commits. A ação de **apagar repositórios** é irreversível e
exige confirmação explícita na tela. Use com responsabilidade.
## Licença
MIT
Como rodar na prática (entrada → saída):
$ gitview ~/projects/meu-repo
[GitView] repo: meu-repo\n Tab Stage: space marca, 'c' commit, 'p' push\n Tab Files: 'a' copia arquivo do PC
$ gitview (aba Files, 'a' em /home/diogo/docs/relatorio.pdf)
adicionado ao repo: relatorio.pdf (staged)