// Documentação do Singularity
O cockpit Git
O cockpit Git reúne o estado do repositório, a preparação de um commit, a sincronização remota e o histórico do projeto. Cada projeto tem o seu próprio separador: assim manténs à vista o ramo e as alterações do repositório certo.
Abrir o cockpit de um projeto
No Navigator, expande um projeto e usa o seu botão Git. Também podes clicar com o botão direito no projeto e escolher Open Git, ou abrir o Aperture com ⌘K / Ctrl K e procurar o projeto ou o comando Git.
O Singularity abre um separador de cockpit associado a esse projeto. Abrir o Git a partir de outro projeto cria ou ativa o separador desse projeto: os repositórios nunca se misturam.

Ler o estado do repositório
O cabeçalho mostra o ramo atual. Os indicadores ahead (à frente) e behind (atrás) comparam este ramo com o seu ramo upstream: à frente corresponde aos commits locais ainda por publicar; atrás, aos commits remotos ainda por integrar.
As alterações dividem-se em Staged Files (conteúdo do próximo commit) e Unstaged Files. Os ficheiros novos aparecem como não monitorizados. Os totais de adições e remoções indicam a dimensão do diff; seleciona um ficheiro para o ler.

Preparar e fazer commit
Usa o botão de um ficheiro para o preparar (stage), ou a ação do grupo para preparar todos os ficheiros em causa. No diff, os controlos de um bloco permitem também aceitar ou rejeitar esse bloco: podes assim preparar apenas certas linhas quando pertencem a um bloco selecionável. Um ficheiro preparado pode ser retirado do índice antes do commit.
No compositor, escreve um assunto conciso e, se necessário, um corpo separado. Verifica a seleção preparada e clica em Commit. Só as alterações preparadas são registadas; as restantes ficam na árvore de trabalho.
Redigir a mensagem de commit com a IA
Depois de preparares os ficheiros, o botão de faísca do compositor pede ao teu fornecedor de IA uma mensagem de commit baseada no diff real. O texto sugerido chega ao compositor — um título curto seguido do detalhe das alterações — e uma notificação confirma que agente o redigiu. Revê-o, altera-o se necessário e clica em Commit.
O menu do botão Commit propõe também o amend e a adição de Signed-off-by. A mensagem de um commit existente pode ser reescrita da mesma forma a partir do grafo. Um indicador ⚡ assinala os hooks que serão executados no commit.

Sincronizar com o remoto
Fetch descarrega as referências remotas e atualiza os contadores, sem alterar os teus ficheiros. Pull obtém e integra o ramo upstream no ramo atual. Push envia os commits locais para o destino configurado; se existirem vários repositórios remotos, escolhe o destino proposto.
O menu de ações adicionais oferece também Pull (rebase), que volta a aplicar os teus commits locais por cima dos commits obtidos. Espera que uma operação termine antes de lançar outra e resolve qualquer conflito assinalado pelo Singularity.
Guardar alterações no stash
Escolhe Stash all changes para limpar temporariamente a árvore de trabalho sem criar um commit. O Singularity inclui no stash os ficheiros monitorizados, preparados e não monitorizados, e atribui-lhe uma mensagem de trabalho em curso associada ao ramo.
Pop latest stash restaura o stash mais recente e depois retira-o da pilha, como git stash pop. Se a sua aplicação gerar conflitos, o stash não se perde: resolve-os antes de continuar.
Descartar alterações
Estes comandos são destrutivos. Discard a file’s changes (descartar as alterações de um ficheiro) restaura a sua versão monitorizada e não pode ser anulado. Trash untracked files (eliminar os ficheiros não monitorizados) apaga os ficheiros e pastas novos selecionados; como o Git não tem nenhuma cópia deles, esta eliminação é irreversível.
Discard all restaura a partir de HEAD os ficheiros preparados e modificados, repõe os submódulos monitorizados, elimina os ficheiros novos e os repositórios aninhados e, depois, aborta qualquer merge ou rebase em curso. As alterações eventualmente restauradas pelo autostash desse cancelamento também são eliminadas definitivamente. Esta ação é irreversível. Lê a confirmação antes de a validares.
Consultar o histórico de um ficheiro
A partir de um ficheiro do cockpit, abre o seu menu de contexto e escolhe File history. A lista apresenta os commits que alteraram esse caminho. Seleciona um commit para ver os seus ficheiros e, depois, o ficheiro pretendido para ler o diff entre essa revisão e a versão anterior.
O diff distingue adições e remoções e mantém o contexto à volta dos blocos modificados. O histórico é só de leitura: não altera nem o ramo atual nem a árvore de trabalho.
Perguntas frequentes
O Fetch altera os meus ficheiros?
Não. O Fetch atualiza as referências remotas e os contadores de commits à frente e atrás, sem integrar os commits no teu ramo nem alterar a árvore de trabalho.
Posso recuperar um ficheiro depois de Discard all?
Não a partir do Singularity. Esta ação restaura os ficheiros monitorizados e elimina os ficheiros não monitorizados; a confirmação indica explicitamente que é irreversível.