Pular para o conteúdo
Início
Docs/Git e GitHub

Git e GitHub

O PocketCode traz o Git integrado: nada para instalar e nenhum comando git para digitar. Prepare por fragmento, faça commit, troque e mescle branches, use stash, veja o blame, faça rebase interativo e cherry-pick, e depois leia e gerencie os pull requests, issues e CI do seu GitHub. Ele roda na biblioteca JGit dentro do app, então tudo o que é local funciona offline; só falar com um remoto (clone, pull, push, GitHub) precisa de conexão.

O que é e como abrir

O Git não é uma tela só: cada parte fica onde você já trabalha. Escolha a porta que corresponde ao que você está fazendo.

OndeComo abrir
Controle de código-fonte (editor)Abra a paleta de comandos ou o menu do editor, vá à seção Git e escolha Controle de código-fonte (o painel se chama Controle de código). Ou pressione Ctrl+Shift+G em um teclado físico, ou toque no nome do branch ou no texto do blame na barra de status.
PRs e issues do GitHub (editor)Paleta de comandos ou menu do editor → Git → PRs e issues do GitHub. Não tem atalho.
Histórico local… e Comparar com… (editor)Paleta de comandos. Nenhum dos dois tem atalho.
Painel Git (terminal)No terminal, abra o painel de ferramentas ou o menu do terminal e escolha Painel Git.
O cartão do projeto (Projetos)Toque na seta do cartão para expandi-lo: Commit, Git, Publicar e Pull / Push / Fetch quando o projeto tem um remoto. Clonar é o bloco no topo da página.
Sua conta do GitHubConfigurações → Integrações → Serviços conectados → GitHub.

O que há por baixo

  • Motor integrado. O Git roda no JGit 6.5.0, uma biblioteca Git para Java, dentro do app. O terminal local não tem o programa git, então o Painel Git dele usa o mesmo motor; por SSH, o painel executa o git do próprio host.
  • Funciona offline. Status, preparação, commits, diffs, blame, histórico, stash, merge, comparação de branches, rebase, cherry-pick, branches, tags e Histórico local não precisam de conexão. Clone, fetch, pull, push, publicar e tudo no GitHub precisam.
  • Um projeto novo ainda não é um repositório. Comece a rastreá-lo com Começar a controlar este projeto (Projetos → Git) ou Inicializar repositório (o Painel Git do terminal). Clonar já entrega um repositório. A pasta .pocketcode/ do próprio PocketCode fica fora das suas alterações.
  • Outras portas. O chat com IA pode rodar o Git por você (status, commit, log, diff, branch, push e pull; o push pede sua confirmação) e os Workflows têm uma etapa de Git (status, commit, push, pull, checkout, log, diff). Os dois usam este mesmo motor e são tratados em suas próprias páginas.
Ctrl+Shift+G é o único atalho do Git. GitHub, Histórico local, Comparar com… e rebase não têm nenhum.

Mapa de telas

Todas as telas e painéis que tocam no Git, e onde cada uma fica. As próximas seções passam por elas uma a uma.

TelaComo chegarO que você pode fazer
Controle de código-fonteEditor → Git → Controle de código-fonte, Ctrl+Shift+G, ou a barra de statusVer o branch e os contadores ↑↓, preparar e desfazer a preparação de arquivos, ler diffs, escrever uma mensagem de commit e fazer o commit, pull e push.
Mensagem de commit com IAControle de código-fonte → Mensagem com IAEscolha um de quatro estilos de mensagem sugerida, montada a partir dos nomes dos seus arquivos. Ela preenche a caixa de mensagem; não faz commit.
Preparar por fragmentosControle de código-fonte → o ícone em um arquivo em AlteraçõesEscolha quais blocos de um arquivo entram no commit e quais ficam de fora.
Mesclar branchControle de código-fonte → MesclarMescle um branch local no branch atual. Se houver conflito, a mesma caixa lista os arquivos em conflito, deixa você resolver cada um e deixa abortar a mesclagem.
Guardar à parteControle de código-fonte → Guardar à parteColoque alterações de lado, com uma mensagem opcional, e depois aplique, recupere ou descarte.
BlameControle de código-fonte → BlameVeja quem alterou por último cada bloco do arquivo aberto e abra o diff desse commit.
Histórico do arquivoControle de código-fonte → Histórico do arquivoNavegue pelos últimos 50 commits que tocaram no arquivo aberto e abra o diff de cada um.
Comparação de branchesControle de código-fonte → CompararCompare dois branches locais: commits à frente e atrás, e os arquivos alterados.
Visualizador de diffToque em um arquivo no Controle de código-fonte; também pelo Histórico do arquivo, Blame, Histórico local e Comparar com…Leia as linhas adicionadas e removidas com números de linha e totais +N −M; Trocar os dois lados.
Resolvedor de conflitosCaixa Mesclar branch → um arquivo em conflito → Editar manualmente, ou um rebase interativo que para em um conflito → ResolverEscolha Ours, Theirs ou Both para cada bloco em conflito.
PRs e issues do GitHubEditor → Git → PRs e issues do GitHubQuatro abas: PRs, Issues, CI e Avisos. Filtre e abra pull requests e issues; crie, mescle, feche e comente.
Novo pull requestAba PRs → Novo pull request de …Título, descrição, branch base e de origem, rascunho e rótulos.
Rebase interativoPRs e issues do GitHub → menu ⋮ → Rebase interativo…Planeje, confirme e execute um rebase, com um backup que você pode restaurar.
Cherry-PickPRs e issues do GitHub → menu ⋮ → Cherry-pick…Aplique commits, digitados por hash, no branch atual.
Histórico localPaleta de comandos → Histórico local…Navegue por versões salvas anteriormente do arquivo aberto; copie ou restaure uma.
Comparar com…Paleta de comandos → Comparar com…Compare o arquivo aberto com o disco, o HEAD, a área de transferência ou outra aba aberta.
Marcas do explorador e barra de statusSempre visíveis em um repositórioVeja quais arquivos mudaram, e o branch com seus contadores ↑↓.
Painel GitTerminal → painel de ferramentas → Painel GitAbas Estado, Branches, Histórico e Ações: o motor integrado localmente, o git do host por SSH.
Confirmar alteraçõesCartão do projeto → CommitPreparar e desfazer a preparação de arquivos, descartar as alterações de um arquivo, amend, Commit ou Commit & Push.
Configurações GitCartão do projeto → GitComeçar a rastrear, ligar ou criar um remoto, enviar, obter e verificar o remoto; trocar e criar branches; Histórico, Etiquetas; seu nome nos commits.
Histórico de commitsConfigurações Git → HistóricoOs últimos 100 commits, com Revert, Reset Soft, Reset Hard e Cherry-pick.
TagsConfigurações Git → EtiquetasCrie uma tag (anotada se você adicionar uma mensagem), exclua uma, faça push das tags.
Publicar no remotoCartão do projeto → PublicarCrie um repositório vazio no GitHub, GitLab ou Bitbucket e ligue-o como origin. Não faz push.
ClonarPágina Projetos → ClonarEscolha um dos seus repositórios no GitHub, GitLab ou Bitbucket e baixe-o como projeto.
Entrar com um códigoConfigurações → Integrações → Serviços conectados → GitHubConecte sua conta do GitHub com um código curto que você aprova no navegador.

Clonar, publicar e conectar o GitHub

O Git só consegue falar com um remoto depois que o PocketCode tem a sua conta. Clonar, publicar, pull e push usam todos a conta que você conecta em Serviços conectados; não há nada para configurar por repositório.

Conectar sua conta do GitHub

  1. 1Abra Configurações → Integrações → Serviços conectados e escolha GitHub. A linha dele diz Entrar com um código.
  2. 2Toque em Pedir um código ao GitHub. O PocketCode mostra O teu código.
  3. 3Toque em Abrir GitHub, digite o código na página que abrir (github.com/login/device) e aprove.
  4. 4Mantenha o painel aberta. À espera de que aproves… vira uma conta conectada sozinho: não há token para copiar de volta.

O que você pode fazer

  • Conecte sem nunca manusear um token: o PocketCode usa o device flow do GitHub, que não precisa de client secret e verifica a cada poucos segundos até você aprovar.
  • Veja o que é pedido antes de aprovar: as permissões repo, read:user e user:email. repo é o que alcança os repositórios privados.
  • Use essa única conta para clone, publicar, fetch, pull, push, o painel PRs e issues do GitHub e o feed de CI.

O que você não pode fazer, e por quê

  • Conectar uma segunda conta do GitHub (ou uma segunda conta de qualquer provedor) no Free: a primeira conta de cada provedor é grátis, mais contas são Pro.Pro
  • Usar o login por código quando o GitHub não o ativou para o app OAuth do PocketCode: o painel então diz que o GitHub não o está oferecendo agora.Terceiros
Um código vive cerca de 15 minutos; se expirar, peça um novo. O token é salvo criptografado no dispositivo, separadamente para cada conta do PocketCode e cada conta de provedor (veja Privacidade e segurança). GitLab e Bitbucket se conectam na mesma tela; Platform Services explica cada um.

Clonar um repositório

  1. 1Na página Projetos, toque em Clonar e escolha Clonar do GitHub, Clonar do GitLab ou Clonar do Bitbucket. Um serviço que você não conectou diz Não conectado — toque para conectar; o botão Conectar dele leva você a Serviços conectados.
  2. 2Busque seus repositórios (Buscar repositórios… no GitHub) e toque em Clonar em um deles. Basta um toque: nada mais é perguntado, e o clone é sempre guardado no armazenamento de projetos do próprio PocketCode, que outros apps não enxergam.
  3. 3Clonando repositório mostra o progresso. Cancelar interrompe e remove a cópia pela metade.
  4. 4O repositório aparece como um novo projeto. Se já existir um projeto com esse nome, o novo se chama name (2), name (3)…

O que você pode fazer

  • Clonar repositórios privados e públicos, do GitHub, GitLab ou Bitbucket, desde que essa conta esteja conectada.
  • Obter o histórico completo: um clone não é raso.

O que você não pode fazer, e por quê

  • Clonar a partir de uma URL, ou um repositório que não está na lista da sua conta.Ainda não
  • Clonar de outros hosts (GitHub Enterprise, GitLab auto-hospedado, Gitea, Codeberg…): só github.com, gitlab.com e bitbucket.org são suportados.De propósito
  • Clonar sem uma conta conectada, mesmo um repositório público.Precisa de rede
  • Baixar submódulos ou conteúdo do Git LFS: submódulos não são clonados, e arquivos LFS continuam como seus pequenos ponteiros de texto.Ainda não
  • Ver o progresso real: a barra avança por etapas, não por bytes.Ainda não

Publicar um projeto local

Publicar serve para um projeto que até agora só existe no seu celular.

  1. 1Expanda o cartão do projeto e toque em Publicar.
  2. 2Escolha um serviço conectado, depois preencha Nome do repositório (começa com o nome do projeto) e escolha Público ou Privado. Começa como Público, então mude para Privado se o código não for para todos.
  3. 3Toque em Criar e vincular.

O que você pode fazer

  • Publicar no GitHub, GitLab ou Bitbucket.
  • Obtenha o mesmo resultado em Git → Criar em GitHub e ligar, ou ligue um repositório que você já tem com Ligar um repositório que já tenho (veja Git no cartão do projeto).

O que você não pode fazer, e por quê

  • Publicar sem nenhum serviço conectado: o painel diz Conecte GitHub, GitLab ou Bitbucket em Serviços primeiro, e você não consegue conectar a partir dali.Precisa de rede
  • Publicar em outro host.De propósito
Publicar cria o repositório vazio no serviço e o liga como origin. Não faz commit nem push. Seu trabalho sobe quando você faz commit e depois usa Enviar alterações (ou Push).

Controle de código-fonte no editor

O Controle de código-fonte é o painel Git do editor, para o projeto aberto. Ele mostra o branch e suas alterações e cobre o ciclo do dia a dia: preparar, commit, pull, push. Trabalho com branches, stash, blame e histórico são os chips no topo.

Commit, push, pull, merge e stash terminam com uma mensagem curta no editor: o que aconteceu (por exemplo Commit realizado: …, Push realizado, Pull realizado, Merge realizado: …, Stash salvo: …) ou o que falhou (O push falhou: …, com o motivo depois dos dois-pontos). As listas e os contadores ↑↓ são atualizados depois de cada um.

Revisar e preparar alterações

O subtítulo é algo como main ↑2 ↓1 · Alterações · 3: o branch, os commits que você não enviou (↑) e não trouxe (↓), e o número de alterações. Os arquivos são agrupados em Alterações preparadas, Alterações e Não rastreados.

O que você pode fazer

  • Toque em um arquivo para ler o diff: linhas adicionadas e removidas em cor, com números de linha e totais +N −M. Trocar inverte os dois lados.
  • Mova um arquivo com Preparar / Desfazer preparação na linha dele (Rastrear e preparar para um arquivo novo), ou um grupo inteiro com Preparar tudo / Desfazer preparação de tudo.
  • Use os ícones Atualizar, Trazer e Enviar no cabeçalho. Pull e push rodam na hora, sem perguntar, e cada um termina com uma mensagem (Push realizado ou O push falhou: …).
  • Veja Nenhuma alteração (A árvore de trabalho está limpa.) quando não há nada para fazer commit.

O que você não pode fazer, e por quê

  • Iniciar um repositório aqui: em um projeto que ainda não é um, o painel só diz Nenhuma alteração. Comece a rastrear em Projetos → Git ou no Painel Git do terminal.Ainda não
  • Fazer fetch, criar ou trocar branches, amend, descartar as alterações de um arquivo, editar tags ou remotos: o editor não tem botão para isso. Projetos e o terminal cobrem a maior parte (veja abaixo).Ainda não
  • Confiar que os contadores ↑↓ estejam atualizados: eles só mudam depois de um pull ou push, porque o editor não consegue fazer fetch.Ainda não

Preparar por fragmentos

Faça commit de parte de um arquivo. Toque em Preparar por fragmentos em um arquivo em Alterações.

O que você pode fazer

  • Cada bloco de alteração aparece como Fragmento na linha N com suas linhas removidas e adicionadas.
  • Cada fragmento começa como Preparar; toque em Ignorar nos que quiser deixar de fora. N de M aceitos os conta.
  • O botão de baixo diz Adicionar tudo ao índice quando todos os fragmentos estão escolhidos e Adicionar N nos outros casos. Ele adiciona só esses fragmentos ao próximo commit e deixa o arquivo no disco intacto.

O que você não pode fazer, e por quê

  • Dividir um fragmento em linhas individuais.Ainda não
  • Preparar por fragmentos um arquivo novo ou já preparado: o ícone aparece só em Alterações.Ainda não
A cópia preparada do arquivo é reconstruída a partir do último commit mais os fragmentos que você escolheu, então qualquer coisa já preparada para esse arquivo é substituída por ela.

Commit e a mensagem sugerida

Digite uma mensagem em Mensagem do commit… e toque em Confirmar. O botão só fica ativo com uma mensagem e pelo menos um arquivo em Alterações preparadas.

O que você pode fazer

  • Toque em Mensagem com IA para ter ideias. Escolha um estilo (Convencional, Descritivo, Imperativo ou Emoji), toque em uma sugestão e em Usar esta mensagem: ela preenche a caixa, e você ainda toca em Confirmar.
  • Faça commit como você mesmo: os commits do editor levam o nome e o e-mail salvos no repositório, então defina antes O teu nome nos commits (Projetos → Git).

O que você não pode fazer, e por quê

  • Fazer amend do último commit pelo editor: use Amend último commit em Projetos → Commit.Ainda não
Mensagem com IA não é IA. É uma sugestão local, baseada em regras, montada a partir dos nomes e dos tipos de alteração dos arquivos que você mudou (preparados, não preparados e novos). Ela não lê o seu diff, não chama nenhum modelo e não usa nenhuma chave.

Mesclar um branch

  1. 1Toque em Mesclar. A caixa Mesclar branch diz Atual: main e lista seus outros branches locais; filtre-os com Buscar branches....
  2. 2Escolha um branch e toque em Mesclar em main.
  3. 3Uma mensagem conta como foi: Merge em avanço rápido: …, Merge realizado: …, Já está atualizado ou, em caso de conflito, O merge tem conflitos em: ….
  4. 4Depois de um conflito, a caixa passa a Conflitos de mesclagem detectados, com N arquivo(s) precisam de resolução. Toque em um arquivo e escolha Aceitar o atual, Aceitar o recebido ou Aceitar os dois (cada um vale para todos os blocos em conflito do arquivo e o deixa preparado), ou Editar manualmente para escolher bloco a bloco. Veja Conflitos.
  5. 5Abortar mesclagem abandona a mesclagem: pergunta Abortar o merge? (Isto vai descartar o merge em curso e as resoluções de conflitos feitas até agora. Não pode ser desfeito.) e Abortar confirma. Quando o último arquivo é resolvido, a caixa volta para a lista de branches e você faz o commit pelo Controle de código-fonte.

O que você não pode fazer, e por quê

  • Mesclar um branch remoto, ou escolher só fast-forward, sem fast-forward ou squash. Para trazer trabalho remoto, use Trazer.Ainda não

Comparar dois branches

  1. 1Toque em Comparar (Comparação de branches).
  2. 2Escolha Base e Comparar, depois toque em Comparar ramos.

O que você pode fazer

  • Leia À frente e Atrás, Arquivos, os commits (a lista para em 50, mas À frente é a contagem real) e os caminhos alterados. Branches idênticos dizem Não há diferenças entre estes ramos.

O que você não pode fazer, e por quê

  • Abrir o diff de um arquivo a partir da comparação, ou comparar branches remotos: só os branches locais são listados.Ainda não

Stash

O chip Guardar à parte mostra quantas entradas você tem. Toque em Guardar à parte e depois em Guardar as alterações à parte para colocar suas alterações de lado; toque em uma entrada para Aplicar, Recuperar ou Descartar. Descartar pergunta antes: Descartar o stash? — Esta entrada do stash será eliminada permanentemente. Não pode ser desfeito.

O que você pode fazer

  • Digite uma Mensagem (opcional) antes de confirmar: ela é salva com a entrada e aparece como o título dela na lista. Sem ela, o Git escreve o próprio título WIP on ….
  • Leia o resultado em uma mensagem: Stash salvo: …, Stash aplicado e removido (Recuperar), Stash aplicado (mantido) (Aplicar) ou Stash removido (Descartar).

O que você não pode fazer, e por quê

  • Guardar no stash arquivos novos (não rastreados): só as alterações em arquivos que o Git já rastreia são postas de lado.Ainda não
  • Recuperar uma entrada específica: Recuperar sempre aplica e remove a mais nova, qualquer que seja a linha que você abriu.Ainda não
  • Resolver conflitos quando um stash aplicado entra em conflito: não há resolvedor para isso.Ainda não
Para restaurar uma entrada específica, use Aplicar nela e depois Descartar: esses dois respeitam a linha que você escolheu.

Blame

O que você pode fazer

  • Com um arquivo aberto, toque em Blame: linhas consecutivas do mesmo commit são agrupadas, com o autor, Linha N (ou um intervalo) e o hash de 7 caracteres.
  • Toque em um bloco e depois em Ver o commit para ler o diff desse commit no arquivo.
  • Olhe a barra de status: ela pode mostrar autor · há quanto tempo para a linha em que o cursor está, ao lado do nome do branch. Toque em qualquer um para abrir o Controle de código-fonte. Linhas que você não commitou mostram Not Committed Yet.

O que você não pode fazer, e por quê

  • Fazer blame de outro branch ou commit, ou ocultar o blame da barra de status: não há configuração para isso.Ainda não
  • Ler esse tempo relativo no seu idioma: just now, 5 min ago, yesterday… estão sempre em inglês.Ainda não

Histórico do arquivo

O que você pode fazer

  • Com um arquivo aberto, toque em Histórico do arquivo para ver os últimos 50 commits que tocaram nele (mensagem, hash, autor, idade) e em Ver diff para ver o que cada um mudou nesse arquivo.
  • Um arquivo intocado diz Este ficheiro não tem histórico de commits.

O que você não pode fazer, e por quê

  • Ver mais de 50 commits.De propósito
  • Restaurar o arquivo para uma versão antiga, ou reverter pela linha: Revert fica em Projetos → Git → Histórico, e o Histórico local cobre o trabalho não salvo.Ainda não

Marcas no explorador e na barra de status

O que você pode fazer

  • Em um repositório, o explorador de arquivos marca cada arquivo alterado (modificado, adicionado, não rastreado, excluído ou renomeado), marca as pastas que contêm alterações e mostra um rodapé com o branch, ↑↓ e o número de arquivos alterados. Ele lê o mesmo status do Controle de código-fonte.
  • O nome do branch na barra de status abre o Controle de código-fonte.
  • Fora de um repositório Git não há marcas nem rodapé.

O que você não pode fazer, e por quê

—

Git no cartão do projeto

Várias ações do Git ficam no cartão do projeto na página Projetos, não no editor: amend, trocar e criar branches, tags, revert, reset, ligar um remoto e o nome nos seus commits. O cartão em si é tratado na página Projetos.

O que o cartão diz

Ao lado do nome do projeto, o cartão mostra uma etiqueta só quando há algo a fazer.

EtiquetaSignificado
PullO remoto tem commits que você não tem.
PushVocê tem commits que o remoto não tem, ou este branch nunca foi enviado.
AlteraçõesVocê tem alterações sem commit (exibido para projetos que têm um remoto).
ConflitoOs dois lados têm commits novos, então você precisa baixar primeiro. Não significa conflitos de merge.
Expandido, o cartão mostra os chips Pull, Push e Fetch quando o projeto tem um remoto, um botão Commit quando o projeto é um repositório (com um ponto quando há alterações pendentes) e os chips Git e Publicar. As etiquetas se atualizam quando a lista carrega e quando você salva um arquivo no editor. Só uma etiqueta aparece de cada vez e Alterações tem prioridade: com alterações sem commit você vê apenas Alterações, mesmo que também haja commits para obter ou enviar (arquivos não rastreados, sozinhos, não contam). As etiquetas comparam com o último estado conhecido do remoto, então Pull só aparece depois de atualizá-lo (o chip Fetch, Verificar o remoto, um pull ou um push).

Confirmar alterações

Toque em Commit no cartão. O painel se chama Confirmar alterações e indica o branch.

O que você pode fazer

  • Mova arquivos entre Staged (n) e Não adicionado (n) com a caixa de seleção de cada arquivo, ou use Adicionar tudo / Remover tudo.
  • Digite uma Mensagem de commit e toque em Commit. Precisa de uma mensagem e de pelo menos um arquivo preparado, e não prepara nada por você: sem nenhum preparado, diz Sem arquivos staged. Use 'Adicionar tudo' para incluir as alterações.
  • Marque Amend último commit (Modifica o commit anterior com as mudanças atuais): o botão vira Amend Commit.
  • Toque em Commit & Push para fazer commit e enviar de uma vez (só quando o projeto tem um remoto).
  • Descarte as alterações sem commit de um arquivo que o Git já rastreia com o ícone Descartar mudanças na linha dele. Ele não aparece para arquivos preparados ou novos.
  • Autor: o nome e o e-mail salvos no repositório; quando não há, os da sua conta do PocketCode.

O que você não pode fazer, e por quê

—

Configurações Git

Toque em Git no cartão. Um cartão de status diz em que pé o projeto está, e as ações mudam de acordo.

O cartão dizO que você pode fazer
Ainda sem controlo de versõesComeçar a controlar este projeto cria um repositório local, com um .gitignore que deixa de fora .pocketcode/. Ligar um repositório que já tenho o cria e define origin com a URL que você informar.
Guardado só neste dispositivoCriar em GitHub e ligar (ou GitLab, Bitbucket) cria um repositório vazio privado ou público e o liga; precisa antes da conta (Liga primeiro uma conta GitHub nas Definições). Ligar um repositório que já tenho define origin com uma URL.
LigadoEnviar alterações (push), Obter alterações (pull) e Verificar o remoto (fetch), mais as linhas Ramo, Histórico e Etiquetas.

O que você pode fazer

  • Ramo: seus branches locais. Toque em um para mudar para ele, ou use Criar nova branch: a caixa Mudar para esta branch (marcada por padrão) leva você para ela na hora.
  • O teu nome nos commits: defina o user.name e o user.email que o repositório guarda. Começam preenchidos a partir do repositório, do seu serviço conectado ou da sua conta.

O que você não pode fazer, e por quê

  • Trocar de branch ou ver Histórico e Etiquetas em um repositório que ainda não tem remoto: essas linhas só aparecem quando existe um origin. O Painel Git do terminal pode trocar de branch localmente.Ainda não
  • Excluir ou renomear um branch, ou listar branches remotos: aqui só existem branches locais.Ainda não

Histórico de commits, Revert e Reset

Histórico (Histórico de commits) lista os últimos 100 commits: mensagem, hash de 7 caracteres, autor e data. Toque em um commit para revelar quatro botões.

BotãoO que faz
RevertCria um novo commit que desfaz aquele commit. O histórico não é reescrito.
Reset SoftMove o branch de volta para aquele commit e mantém tudo o que veio depois como alterações preparadas.
Reset HardMove o branch de volta e descarta tudo o que veio depois, inclusive alterações sem commit.
Cherry-pickAplica aquele commit em cima do branch atual, sem hash para digitar.

O que você não pode fazer, e por quê

  • Reset mixed, ou restaurar um único arquivo de um commit antigo: só existem Reset Soft e Reset Hard.Ainda não
Reset Hard roda assim que você toca, sem confirmação, e descarta trabalho sem commit. Faça commit ou stash antes.

Tags

Etiquetas é uma linha das Configurações Git e, como Ramo e Histórico, aparece quando o projeto tem um remoto.

O que você pode fazer

  • Criar tag: um nome como v1.0.0 e uma mensagem opcional. Com mensagem, a tag é anotada.
  • Exclua uma tag pelo ícone dela.
  • Push de tags as envia (só com um remoto).

O que você não pode fazer, e por quê

—

Painel Git no terminal

O terminal tem seu próprio painel Git pequeno. É o jeito mais rápido de iniciar um repositório ou fazer um commit quando você já está no shell.

Painel Git

Abra o painel de ferramentas do terminal (ou o menu dele) e escolha Painel Git. Ele tem quatro abas: Estado, Branches, Histórico e Ações. No shell local, trabalha no repositório encontrado subindo a partir da pasta em que você está, sem sair do seu próprio workspace, usando o motor integrado. Por SSH, executa git no host remoto.

O que você pode fazer

  • Estado: contagens e listas de arquivos Em stage, Modificado e Não rastreado, ou Árvore de trabalho limpa.
  • Branches: toque em um branch para trocar para ele, ou em Nova ramificação.
  • Histórico: os últimos 30 commits.
  • Ações: Confirmar alterações (pede uma mensagem e fecha o painel), Pull, Push, Stash, Stash Pop, Fetch, Adicionar tudo e Reset (tira tudo do índice).
  • Sem repositório, Não há repositório Git aqui oferece Inicializar repositório.

O que você não pode fazer, e por quê

  • Usar a ação Diff no shell local: ela existe só por SSH.De propósito
  • Stash com mensagem, descartar um único arquivo, merge, rebase, tag ou blame: não neste painel. Ele mesmo diz isso: Painel local sobre JGit; para um git completo use o Controle de código-fonte do editor.Ainda não
  • Fazer push ou pull sem uma conta conectada: o painel mostra Git: … com o motivo e não abre um login.Precisa de rede

Conflitos

Um conflito significa que duas alterações tocaram nas mesmas linhas. O PocketCode tem duas formas guiadas de resolvê-lo: a caixa Mesclar branch do Controle de código-fonte, para um merge, e o resolvedor bloco a bloco de um rebase interativo. Se o conflito vem de um pull, de um stash aplicado ou de um cherry-pick, você lida com os marcadores de conflito por conta própria.

Arquivo por arquivo, depois de um merge

  1. 1Mescle um branch pelo Controle de código-fonte. Se houver conflito, uma mensagem diz O merge tem conflitos em: … e a caixa Mesclar branch mostra Conflitos de mesclagem detectados, N arquivo(s) precisam de resolução e a lista de arquivos.
  2. 2Toque em um arquivo para abrir as opções: Aceitar o atual, Aceitar o recebido, Aceitar os dois ou Editar manualmente.
  3. 3As três primeiras reescrevem o arquivo inteiro: cada bloco em conflito fica com aquele lado (ou com os dois, o atual primeiro), os marcadores somem e o arquivo é preparado. Uma mensagem confirma: Conflito resolvido: ….
  4. 4Editar manualmente abre o painel bloco a bloco descrito mais abaixo: escolha Ours, Theirs ou Both em cada bloco e toque em Aplicar.
  5. 5Quando não sobra nenhum arquivo na lista, a caixa volta para o seletor de branches. Os arquivos resolvidos ficam preparados: escreva uma mensagem e toque em Confirmar.

O que você pode fazer

  • Resolver os arquivos um a um e ver a contagem baixar.
  • Desistir com Abortar mesclagem: ela pergunta Abortar o merge? e Abortar confirma; a mensagem diz Merge abortado.

O que você não pode fazer, e por quê

—

Bloco a bloco, durante um rebase

  1. 1Quando um rebase interativo para em um conflito, cada arquivo em conflito mostra Resolver.
  2. 2Para cada bloco escolha Ours (Current (ours)), Theirs (Incoming (theirs)) ou Both. O cabeçalho conta seu progresso: N / M resolvidos.
  3. 3Toque em Aplicar. O arquivo é salvo e preparado quando não sobra nenhum marcador de conflito. Os blocos que você não escolheu mantêm seus marcadores.
  4. 4De volta ao rebase, toque em Continuar (ou Ignorar este commit, ou Abortar).

O que você não pode fazer, e por quê

  • Escolher a versão do ancestral comum de um bloco, ou editar à mão dentro do painel.Ainda não
As palavras deste painel (Conflict N, Current (ours), Incoming (theirs), Ours, Theirs, Both) estão sempre em inglês, qualquer que seja o idioma do app.

Conflitos de um pull, stash ou cherry-pick

Em Projetos, um pull com conflito diz: As mesmas linhas mudaram dos dois lados. Abre os ficheiros afetados, fica com a versão que queres e tenta outra vez. Esse é o caminho aqui também.

O que você não pode fazer, e por quê

  • Usar um resolvedor guiado para um conflito vindo de um pull, de um stash aplicado ou de um cherry-pick: só a caixa Mesclar branch e o rebase interativo têm um.Ainda não
Não há resolvedor guiado para esses casos. Um pull ou stash aplicado com conflito deixa marcadores de conflito (<<<<<<<, =======, >>>>>>>) nos seus arquivos: abra-os e fique com a versão que quiser.

Rebase interativo e cherry-pick

Rebase interativo e cherry-pick não abrem pelo Controle de código-fonte: ficam no painel do GitHub. Abra PRs e issues do GitHub e use o menu ⋮ → Rebase interativo… ou Cherry-pick….

O menu ⋮ só funciona quando o remoto origin do projeto está no github.com. Um projeto sem remoto, ou cujo origin esteja no GitLab, Bitbucket ou outro host, não consegue abrir rebase nem cherry-pick. Projetos → Git → Histórico oferece Cherry-pick em qualquer commit em que você tocar, sem hash para digitar, e informa o resultado em uma mensagem.

Rebase interativo

  1. 1Abra Rebase interativo…. O painel começa no planejamento: nada toca no seu repositório ainda.
  2. 2Escolha Branch de destino. Começa como main ou master quando existe um e não é o seu branch atual.
  3. 3Para cada commit escolha Aplicar, Reescrever, Esmagar, Fundir sem mensagem ou Descartar, e use Editar mensagem para mudar a mensagem de um commit.
  4. 4Se você tem alterações sem commit, o painel avisa; ative Guardar as minhas alterações no stash antes de começar para colocá-las de lado. Se o rebase termina, elas continuam no stash (aplique-as em Guardar à parte); se você aborta, elas voltam sozinhas.
  5. 5Toque em Começar o rebase. Uma confirmação lista o plano (por exemplo, dois Aplicar e um Esmagar) e quantos commits serão removidos do branch; eles continuam no backup.
  6. 6Se um commit entra em conflito, o rebase para: Parado em … · passo N de M. Use Resolver em cada arquivo (veja Conflitos), depois Continuar; ou Ignorar este commit, ou Abortar. Cada um pede sua confirmação.
  7. 7Quando termina, aparece Rebase concluído (ou Rebase desfeito depois de um abort). Restaurar a cópia devolve o branch ao que era antes do rebase; Outro rebase recomeça.

O que você pode fazer

  • Antes de qualquer mudança, o PocketCode salva a ponta atual do seu branch como refs/pocketcode/rebase-backup/<branch>.
  • Um rebase nunca começa com alterações sem commit, a menos que você as coloque antes no stash.
  • Abortar desfaz tudo (branch, índice e árvore de trabalho) e reaplica o seu próprio stash.
  • O plano é salvo dentro de .git, então Continuar e Ignorar este commit continuam funcionando se o app foi fechado no meio.
  • Restaurar a cópia move o branch de volta para a ponta salva, mas só com a árvore de trabalho limpa; os commits feitos depois do rebase ficam então apenas no reflog do Git.

O que você não pode fazer, e por quê

  • Reordenar commits: o painel não permite.De propósito
  • Usar a ação Edit: o Git criaria um novo commit em vez de fazer amend, então ela não é oferecida.De propósito
  • Começar com Esmagar ou Fundir sem mensagem no primeiro commit que você mantém, ou descartar todos os commits: o painel recusa os dois.De propósito
  • Fazer rebase sobre um branch remoto, ou fazer rebase de um branch que não seja o atual: só branches locais são oferecidos, e um HEAD desanexado é recusado.Ainda não
  • Abri-lo pelo Controle de código-fonte, a partir de um projeto sem remoto, ou de um cujo origin não esteja no github.com.Ainda não

Cherry-pick

  1. 1Abra Cherry-pick…, digite um hash de commit em Hash do commit e toque em Adicionar. Adicione quantos precisar; eles aparecem como chips.
  2. 2Toque em Cherry-Pick (ou Cherry-pick de N commits) e confirme: Aplicar N commits sobre o ramo atual, em ordem?
  3. 3O painel informa Cherry-pick de … concluído com sucesso ou O cherry-pick falhou: ….

O que você não pode fazer, e por quê

  • Escolher commits a partir de uma lista: você precisa saber e digitar o hash, e a única verificação é que ele não tenha espaços.Ainda não
  • Contar com a ordem quando você adiciona vários hashes: eles são iniciados juntos, então o “em ordem” da confirmação não é garantido. Faça cherry-pick de um por vez quando a ordem importar.Ainda não
  • Confiar em Commit novo: …: ele mostra o hash que você digitou, não o id do commit criado.Ainda não
  • Resolver um conflito: um cherry-pick em conflito só informa uma falha, sem resolvedor.Ainda não

GitHub: pull requests, issues, CI e avisos

PRs e issues do GitHub conversa com o repositório do GitHub do projeto aberto no editor. Ele lê o remoto origin do projeto e usa a conta que você conectou em Serviços conectados; as requisições vão direto do seu celular para api.github.com. O cabeçalho mostra owner/repo, um ícone para abrir o repositório no navegador e o menu ⋮.

Só funciona com repositórios no github.com: merge requests do GitLab, pull requests do Bitbucket e GitHub Enterprise não são suportados. Cada lista para em 300 itens.

Primeiros passos

Você precisa de um projeto cujo origin esteja no github.com e de uma conta do GitHub conectada. Sem projeto aberto, o painel diz O caminho do projeto não foi definido — abra pelo editor; os outros casos estão em Solução de problemas. Ele tem quatro abas.

AbaO que mostra
PRs · NOs pull requests do repositório, os atualizados mais recentemente primeiro.
Issues · NAs issues dele (pull requests ficam de fora).
CIOs checks do pull request que você abriu.
Avisos · NSuas notificações do GitHub; N é a contagem de não lidas, carregada na primeira vez que você abre a aba.
Os menus de branch (Ramo base, Ramo de origem e, na folha do rebase, Branch de destino) são preenchidos com seus branches locais assim que a folha abre.

Pull requests

O que você pode fazer

  • Filtre com Abertas, Minhas, Revisão pedida, Fechadas ou Todas. Minhas e Revisão pedida são filtradas no seu celular com base no seu login do GitHub.
  • Leia a lista: estado (Aberta, Rascunho, Mesclada, Fechada), número, título, autor, idade, revisões pedidas e rótulos.
  • Abra um: Resumo (descrição, head → base, arquivos alterados, +N / −M, commits, responsáveis, rótulos, Checks e Revisões com seu estado), Arquivos · N (caminhos com +/−) e Comentários · N.
  • Veja por que não dá para mesclar: um banner diz Não é possível mesclar: … seguido dos motivos que se aplicam (conflitos de mesclagem, um check com falha, alterações solicitadas).
  • Escreve um comentário… publica um comentário de conversa. Fechar PR fecha o pull request.
  • Fundir oferece Commit de fusão, Combinar e fundir e Rebasear e fundir. O app envia o commit head que mostrou a você, então, se alguém fez push nesse meio-tempo, o GitHub recusa em vez de mesclar commits que você não viu.
  • Novo pull request de … (precisa de um branch atual): título, descrição, Ramo base e Ramo de origem, Criar como rascunho e rótulos, depois Criar pull request.

O que você não pode fazer, e por quê

  • Enviar uma revisão (aprovar ou pedir alterações), comentar em uma linha ou ler o diff do pull request: as revisões são mostradas, mas só para leitura, e Arquivos lista caminhos sem abri-los.Ainda não
  • Escolher revisores ao criar um pull request.Ainda não
  • Reabrir um pull request, editar o título ou a descrição, ativar o auto-merge ou atualizar o branch dele.Ainda não
  • Usar merge requests do GitLab, pull requests do Bitbucket ou GitHub Enterprise: só repositórios do github.com são lidos.De propósito

Issues

O que você pode fazer

  • Filtre com Abertas, Minhas issues (atribuídas a você), Fechadas ou Todas.
  • Leia a lista (estado, número, contagem de comentários, autor, rótulos) e abra uma para ver o corpo, as datas, responsáveis, rótulos, marco, comentários e uma caixa de comentário.
  • Fechar problema a fecha como concluída. Criar problema pede um título, uma descrição e rótulos.

O que você não pode fazer, e por quê

  • Escolher um marco ou responsáveis ao criar uma issue, reabrir uma, editá-la, rotulá-la depois ou buscar.Ainda não

CI

O que você pode fazer

  • Abra um pull request e depois a aba CI: os checks do commit head dele (execuções do GitHub Actions, checks de outros apps e statuses clássicos) sob um único resumo, como Todos os checks passaram, Alguns checks falharam ou Checks em andamento.

O que você não pode fazer, e por quê

  • Ver o CI sem abrir antes um pull request (a aba diz Seleciona um PR para ver o estado de CI), ler logs, ou executar de novo ou cancelar uma execução.Ainda não
Separadamente, quando você seleciona um projeto, o PocketCode lê uma vez a última execução do GitHub Actions, GitLab CI ou Bitbucket Pipelines do origin dele e a coloca no feed de status do Backend Manager. Precisa desse serviço conectado e não se atualiza sozinho.

Avisos

O que você pode fazer

  • Abra Avisos: suas notificações do GitHub nas quais você participa. Cada linha tem um ícone do tipo (revisão pedida, aprovado, alterações solicitadas, merge, comentário, atribuído, menção, CI passou ou falhou, release), o título e repo · motivo.
  • Toque em uma não lida para marcá-la como lida, ou em Marcar tudo como lido. Quando não sobra nenhuma, diz Tudo em dia.

O que você não pode fazer, e por quê

  • Abrir o pull request ou a issue por trás de uma notificação: tocar só a marca como lida.Ainda não
  • Ver notificações com um token fine-grained: o GitHub só as mostra para um token clássico ou um login OAuth, e o painel avisa isso.Terceiros

Histórico local

O Histórico local guarda versões anteriores de um arquivo no seu celular, sem Git, sem rede e sem conta. É grátis. Abra-o pela paleta de comandos: Histórico local….

O que ele guarda

O que você pode fazer

  • Uma versão é salva depois de cada salvamento bem-sucedido, e só quando o texto difere da última versão salva. Funciona para arquivos do projeto e para arquivos que você abriu de fora do projeto.
  • Guarda até 50 versões por arquivo e 50 MB no total, medidos comprimidos. Passando do total, as versões mais antigas de qualquer arquivo saem primeiro. Não há expiração por tempo.
  • As versões ficam no armazenamento privado do PocketCode, nunca dentro do seu projeto, então nunca aparecem como alterações do Git. Renomear ou mover um arquivo leva o histórico junto.

O que você não pode fazer, e por quê

  • Guardar versões de arquivos grandes: o editor abre arquivos a partir de 512 KiB, 10.000 linhas ou uma linha de 2.000 caracteres no modo leve, e esses não são salvos.De propósito
  • Mudar os limites, ou fixar ou rotular uma versão.De propósito

Navegar e restaurar

  1. 1Abra o arquivo e escolha Histórico local…. O subtítulo mostra quantas versões há, por exemplo 12 versões.
  2. 2Cada linha mostra quando foi salva e o tamanho. Toque em uma para ver a diferença entre essa versão e o texto atual.
  3. 3Copiar esta versão copia o texto dela. Restaurar esta versão a coloca no editor como uma edição que você pode desfazer. Nada é gravado no disco até você salvar.

O que você não pode fazer, e por quê

  • Comparar duas versões antigas entre si: elas são sempre comparadas com o texto atual.Ainda não
Uma lista vazia diz Ainda não há versões: Ainda não há versões salvas. Elas aparecem na próxima vez que você salvar uma alteração.

Comparar com…

Abra a paleta de comandos e escolha Comparar com… para comparar o arquivo aberto com outra coisa. O resultado é somente leitura.

Escolha com o que comparar

O que você pode fazer

  • Escolha a base: No disco (A versão salva deste arquivo), HEAD (O último commit do git), Área de transferência (O texto copiado) ou Outra aba aberta.
  • Uma base que não está disponível diz o motivo: Não há repositório Git, A área de transferência está vazia ou Não há outras abas abertas.
  • O diff abre com o título arquivo ↔ base; Trocar inverte os dois lados.

O que você não pode fazer, e por quê

  • Editar a partir do diff ou vê-lo em duas colunas: é uma única lista unificada de linhas alteradas.De propósito
A base HEAD compara o último commit com o arquivo no disco, então edições que você não salvou não entram.

Free e Pro

O Git não tem limites de plano próprios. Nenhuma operação do Git, recurso do GitHub, Histórico local, Comparar com… ou Painel Git do terminal fica trancado atrás do Pro, e o plano não coloca teto em repositórios, branches, commits ou operações. Dois limites ao redor dele dependem do plano.

RecursoFreePro
Controle de código-fonte, stash, blame, histórico do arquivo, comparar branchesIncluídoIncluído
Rebase interativo, cherry-pick, resolvedor de conflitosIncluídoIncluído
Pull requests, issues, CI e avisos do GitHubIncluídoIncluído
Histórico localIncluído: 50 versões por arquivo, 50 MB no totalIgual
Painel Git no terminal, os painéis Git do cartão do projeto, clonar e publicarIncluídoIncluído
Projetos próprios (novo, importar, abrir pasta, clonar do GitLab ou Bitbucket)1. Os projetos de exemplo não contamSem limite
Contas conectadas por provedor (GitHub, GitLab, Bitbucket…)1Sem limite
Um segundo projeto e uma segunda conta de um provedor são as únicas coisas ligadas ao Git que pedem Pro. A tabela completa está em Planos e preços.

Privacidade e segurança

  • O token fica no celular. O token que você recebe em Entrar com um código é salvo criptografado com o Android Keystore, separadamente para cada conta do PocketCode e cada conta de provedor. Sair da conta não o apaga; o app só passa a usar o armazenamento de outra conta.
  • Para onde o token vai. O Git o envia apenas para github.com, gitlab.com e bitbucket.org, com correspondência exata do host: um remoto em qualquer outro host não recebe credenciais. O painel PRs e issues do GitHub o envia para api.github.com direto do seu celular.
  • Entrar com o GitHub é outra coisa. Se você entra no próprio PocketCode com o GitHub, esse token do GitHub também é salvo nos servidores do PocketCode, e no dispositivo como uma chave do GitHub (ela serve ao Copilot e, como alternativa, ao clone). O token que push, pull e o painel do GitHub usam é o de Serviços conectados, que fica guardado só no dispositivo.
  • Hooks nunca rodam. Hooks e filtros do Git não são executados, e quando você importa um projeto (ZIP, template, pasta) o .git/config dele é limpo de tudo o que poderia executar um comando e os hooks são esvaziados. É uma decisão de segurança.
  • O Histórico local fica no dispositivo, no armazenamento privado do app e fora do projeto, então não faz parte das suas alterações do Git.
  • O ZIP de um projeto inclui o seu histórico. Exportar em um cartão de projeto inclui a pasta .git, então tudo o que você commitou viaja com o arquivo.
  • O que um commit expõe. Cada commit leva o nome e o e-mail definidos para o repositório (ou os da sua conta do PocketCode, quando você faz commit pelo Projetos). Qualquer pessoa que consiga ler o repositório os vê. Os commits não são assinados.

Limitações

O que não funciona, para não pegar você de surpresa. O selo diz o motivo.

  • Sem remotos SSH. Endereços git@… e ssh:// não são suportados; use o endereço HTTPS do repositório. O PocketCode avisa isso antes de tentar.De propósito
  • As credenciais vão para só três hosts: github.com, gitlab.com e bitbucket.org. Remotos no GitHub Enterprise, GitLab auto-hospedado, Gitea, Codeberg ou Azure DevOps não recebem nenhuma, então os repositórios privados de lá falham.De propósito
  • Pull requests, issues, CI e avisos são só do GitHub.com.De propósito
  • Sem Git LFS, sem submódulos, sem assinatura de commits (GPG ou SSH). Arquivos LFS ficam como pequenos ponteiros de texto, clones não baixam submódulos e os commits não são assinados.Ainda não
  • Hooks do Git nunca rodam, e os hooks de repositórios importados são excluídos.De propósito
  • O terminal local não tem o programa git. O Painel Git dele usa o motor integrado, que faz menos coisas que o git. Por SSH, usa-se o git do próprio host.De propósito
  • Só branches locais aparecem nas listas de merge, comparação e rebase. Você não pode criar um branch local a partir de um remoto, e nada exclui ou renomeia branches.Ainda não
  • O Controle de código-fonte não inicia repositório, não faz fetch, e não consegue criar ou trocar branches, fazer amend, descartar, criar tags ou editar remotos. Projetos e o terminal cobrem a maior parte disso.Ainda não
  • Resolução guiada de conflitos só para um merge e um rebase. A caixa Mesclar branch e o rebase interativo têm uma; um pull, um stash aplicado ou um cherry-pick que entra em conflito deixa marcadores para você editar.Ainda não
  • Stash: arquivos novos não entram, e Recuperar sempre pega a entrada mais nova.Ainda não
  • O rebase não reordena commits nem usa Edit.De propósito
  • Rebase e cherry-pick só abrem pelo painel do GitHub, e só quando o origin está no github.com.Ainda não
  • Cherry-pick: o hash é digitado à mão, vários hashes não têm ordem estrita, Commit novo mostra o hash digitado e conflitos não têm resolvedor.Ainda não
  • Revisões de pull request não podem ser enviadas, comentários em linhas não podem ser escritos e o diff do pull request não pode ser lido. Revisores, responsáveis e marcos não podem ser escolhidos ao criar algo.Ainda não
  • As listas do GitHub param em 300 itens; as notificações carregam seis páginas de 50.De propósito
  • Os avisos precisam de um token que o GitHub deixe ler notificações: tokens fine-grained são recusados.Terceiros
  • O limite de requisições do GitHub: quando é atingido, o painel diz para tentar de novo em alguns minutos.Terceiros
  • Entrar com um código só funciona enquanto o GitHub tem o device flow ligado para o app OAuth do PocketCode; caso contrário, o painel diz que o GitHub não o está oferecendo.Terceiros
  • Clone, fetch, pull, push, publicar e tudo no GitHub precisam de conexão. O resto funciona offline.Precisa de rede
  • Painel Git do terminal: sem Diff local, sem mensagem de stash, sem descartar um único arquivo, sem merge, rebase, tags ou blame.Ainda não
  • Projetos: sem excluir nem renomear branches, sem reset mixed, sem restaurar um arquivo a partir de um commit.Ainda não
  • Histórico local: 50 versões por arquivo e 50 MB no total, sem expiração por tempo, e nada é salvo para arquivos no modo leve (arquivos grandes).De propósito

Solução de problemas

Cada título é a mensagem que o app mostra. Onde o app não mostra nada, o título descreve a situação. No painel do GitHub, um banner diz o que falhou e depois por quê.

Conectar o GitHub

“O código expirou antes de ser aprovado. Pede outro ao GitHub.”

Você demorou mais de uns 15 minutos. Toque em Tentar de novo para obter um novo código e depois aprove-o.

“O pedido foi recusado no GitHub. Não se guardou nada.”

A aprovação foi negada na página do GitHub, então nada foi conectado. Toque em Tentar de novo e aprove desta vez.

“O GitHub não está a oferecer agora a entrada por código. Cola um token: funciona exatamente igual.”

O pedido de código falhou. Pode ser que o GitHub não tenha ativado o login por código para o app OAuth do PocketCode, o que depende da configuração do GitHub e não do seu celular; a mesma mensagem também aparece quando o pedido não consegue sair, por exemplo sem conexão. Verifique a conexão e tente de novo mais tarde.

“O GitHub não concluiu a autorização. Tenta outra vez ou cola um token.”

O login terminou sem um token. Toque em Tentar de novo e aprove o novo código.

Clonar, push e pull pelo Projetos

“Este remoto usa SSH, que não é suportado. Usa o endereço HTTPS do repositório.”

O PocketCode só fala com remotos por HTTPS. Ligue o repositório com o endereço https://…; um repositório que você clona pela lista de Clonar já o usa.

“Este projeto ainda não tem remoto. Liga um nas definições de Git.”

Abra Git no cartão do projeto e use Ligar um repositório que já tenho ou Criar em GitHub e ligar; ou use Publicar.

“Não há nenhuma conta ligada a GitHub. Liga uma nas Definições para enviar ou obter.”

Conecte a conta primeiro: Configurações → Integrações → Serviços conectados.

“GitHub rejeitou as credenciais. Liga novamente a conta nas Definições.”

O GitHub não aceita mais o token salvo, por exemplo porque expirou ou foi revogado. Conecte a conta de novo em Serviços conectados.

“Não foi possível contactar GitHub. Verifica a ligação e tenta novamente.”

Clone, fetch, pull e push precisam de conexão. O trabalho local não.

“O remoto rejeitou o envio. Obtém primeiro as alterações do remoto e envia de novo.”

O remoto tem commits que você não tem. Toque em Obter alterações e depois em Enviar alterações de novo.

“A tua ramificação e a remota mudaram ambas.”

Baixe primeiro as alterações do remoto e depois envie de novo: Obter alterações e depois Enviar alterações.

“Este projeto e o remoto não partilham histórico.”

Costuma acontecer quando a pasta já tinha commits antes de ligar o remoto. Clone em uma pasta vazia ou ligue outro remoto.

“As mesmas linhas mudaram dos dois lados.”

Abra os arquivos afetados, fique com a versão que quiser e tente de novo. Um pull não tem resolvedor de conflitos; um merge iniciado no editor tem um na caixa Mesclar branch (veja Conflitos).

PRs e issues do GitHub

“O remoto "origin" não está no GitHub (…).”

O painel só funciona com o github.com. O host entre parênteses é o que o PocketCode encontrou em origin.

“Este projeto não tem o remoto "origin". Adicione um remoto do GitHub para ver seus pull requests e issues.”

Use Git → Ligar um repositório que já tenho, ou Publicar, no cartão do projeto.

“Conecte sua conta do GitHub em Serviços para ver os pull requests e issues de owner/repo.”

Toque em Conectar conta do GitHub na tela Nenhuma conta do GitHub conectada, ou vá a Configurações → Integrações → Serviços conectados.

“O GitHub rejeitou o token. Reconecte sua conta do GitHub em Serviços.”

O token salvo foi recusado. Conecte a conta de novo em Serviços conectados.

“A conta conectada não tem permissão para isso: …”

A conta consegue ler o repositório, mas não fazer essa ação. O motivo vem depois dos dois-pontos.

“Não encontrado. Se o repositório for privado, a conta conectada pode não ter acesso a ele.”

Confira se a conta conectada é a que consegue abrir esse repositório no GitHub.

“O GitHub rejeitou os dados: …”

O GitHub não aceitou o que foi enviado. O motivo vem depois dos dois-pontos.

“O GitHub não pode fazer isso agora: …”

O GitHub recusou a ação no estado atual das coisas. O motivo vem depois dos dois-pontos; se o pull request mudou desde que você o abriu, abra-o de novo e tente outra vez.

“O limite de requisições do GitHub foi atingido. Tente de novo em … min.”

Espere os minutos indicados. A tela cheia se chama O GitHub limitou as requisições; toque em Tentar novamente quando o tempo passar.

“O GitHub está com problemas (HTTP …). Tente mais tarde.”

O próprio GitHub respondeu com um erro. Não há nada de errado no seu celular.

“Não foi possível acessar o GitHub. Verifique sua conexão.”

O painel do GitHub precisa de conexão; o resto do Git não.

“O GitHub só mostra notificações a um token clássico ou a um login OAuth com o escopo "notifications"; tokens fine-grained não podem lê-las.”

Só a aba Avisos é afetada; PRs, Issues e CI continuam funcionando.

“O pull request foi criado, mas não foi possível adicionar seus revisores ou rótulos”

Seu pull request existe no GitHub; só os extras falharam. Abra-o no GitHub para adicioná-los.

Rebase interativo

“Não estás num ramo (HEAD desligado). Muda primeiro para um ramo.”

Mude para um branch (Projetos → Git → Ramo, ou o Painel Git do terminal) e comece de novo.

“Há alterações sem commit: …”

Faça commit delas, ou ative Guardar as minhas alterações no stash antes de começar.

“Já há um merge ou um rebase em curso neste repositório.”

Termine-o ou aborte-o primeiro. Para um rebase, o painel tem Continuar, Ignorar este commit e Abortar.

“O rebase ia sobrescrever ficheiros sem controlo: …. Move-os ou faz commit antes. Não se alterou nada.”

Mova ou faça commit dos arquivos que a mensagem lista e comece de novo.

“O ramo mudou desde que a lista foi carregada. Carrega-a de novo.”

O branch avançou depois que o plano foi carregado. Reabra Rebase interativo… para recarregá-lo.

“O Git não conseguiu aplicar … e desfez o rebase. O ramo está como estava.”

Nada foi perdido. O commit que a mensagem cita não pôde ser aplicado sobre o branch de destino.

“Depois de resolver, este commit fica vazio. Ignora-o para continuar.”

Sua resolução não deixou nada para aplicar. Toque em Ignorar este commit.

“O primeiro commit que fica não pode ser Esmagar nem Fundir: não há um anterior onde o fundir.”

Dê Aplicar ou Reescrever ao primeiro commit que você mantém.

“Estás a descartar todos os commits. Deixa pelo menos um.”

Troque pelo menos um commit de Descartar para outra ação.

“Não há cópia de segurança de rebase para este ramo.”

Restaurar a cópia só funciona em um branch que o PocketCode rebaseou e cuja ponta salva ainda existe.

No editor e no terminal

“O push falhou: …”, “O pull falhou: …” ou “O commit falhou: …” no editor

A mensagem depois dos dois-pontos é o motivo. Push e pull precisam da sua conta conectada; o editor nunca abre um login. Projetos (Enviar alterações / Obter alterações) e o Painel Git do terminal executam as mesmas ações e mostram o erro com as próprias palavras.

“O merge tem conflitos em: …”

O merge parou por conflitos. Abra Mesclar branch de novo: a caixa lista os arquivos e deixa você resolver cada um ou Abortar mesclagem (veja Conflitos).

O Controle de código-fonte diz Nenhuma alteração, mas eu mudei arquivos

Ou a árvore de trabalho está limpa, ou o projeto ainda não é um repositório. Em Projetos → Git, Ainda sem controlo de versões significa que você precisa de Começar a controlar este projeto.

“Não há repositório Git aqui”

O Painel Git do terminal não achou nenhum .git na pasta em que você trabalha nem nas pastas acima dela dentro do seu workspace. Toque em Inicializar repositório.

“Git: …”

O motivo vem em seguida. Push e pull precisam da sua conta conectada; o painel nunca abre um login por conta própria.