Português

GIT — Git

GIT Um repositório Git percorre-se como uma pasta: os ficheiros alterados, os ramos, o histórico.

Abrir um repositório

O botão GIT da barra salta para o projeto favorito; o seu clique direito dá a lista: os repositórios conhecidos, «Commit», «Histórico…», os ramos, «Stash…» e «Stashes», «Tags…», «Repositórios remotos». Uma pasta do disco que ainda não é um repositório propõe aí «Clonar aqui». Os projetos acrescentam-se sozinhos ao entrar neles, e um projeto cuja pasta desapareceu é esquecido — exceto se for o seu disco que falta, uma pen desligada não fazendo esquecer nada.

O estado de uma pasta

Cada linha traz a sua cor: em conflito, não rastreado, modificado, preparado, ignorado. Um ficheiro é descrito pelo git em dois eixos — o índice e a cópia de trabalho — e uma linha não tem como mostrar os dois: é o que resta fazer que decide a cor. O caminho de navegação diz o ramo atual.

Preparar e fazer commit

«Commit» abre a vista das alterações: um ficheiro por linha, a coluna Rastreado a dizer o que o git sabe dele. Designam-se as linhas como em todo o lado — clique, Ctrl+clique, Shift+clique —, escreve-se a mensagem em baixo, e Commit parte com o que está selecionado. Nada selecionado, nada parte: o botão di-lo.

A pastilha Não seguidos, na barra de commit, oculta o que o git não segue: uma pasta cheia de ficheiros descartáveis já não afoga os dois que se querem submeter, e Ctrl+A já não os leva. Desmarcada, diz quantos oculta.

A vista das alterações de um repositório: três ficheiros, o seu estado de rastreio, e a barra de commit em baixo.
As alterações do repositório, e a barra de commit: a mensagem, o que está selecionado, e o botão.

Mostrar as diferenças

«Mostrar as diferenças» abre o diff bloco a bloco, entre a cópia de trabalho, o índice (preparado) e um commit — antes e depois aí são nomeados. Um ficheiro binário di-lo em vez de mostrar ruído.

Os gestos

Os ramos e o histórico

Criar um ramo, mudar para ele, fundir — a entrada traz o nome do ramo, e responde nada a fundir: já atualizado ou fusão interrompida: há ficheiros em conflito. «Histórico…» lista os commits: o seu identificador curto, o seu assunto, o seu autor, a sua data. A goteira da esquerda desenha o grafo, cada linha na sua, e uma fusão traça o seu risco em direção à coluna vizinha. Um duplo clique abre o pormenor de um commit: a sua mensagem inteira e os ficheiros que tocou.

O histórico de um repositório: quatro commits, o seu assunto, o seu autor, e o grafo dos ramos na goteira.
O histórico, com o seu grafo na goteira: dois ramos saídos de uma mesma raiz, e a fusão que os junta.

A árvore de merge requests

Árvore de merge requests…, no menu do botão GIT, desenha as MR abertas do projeto GitLab indicado pelo remoto. Cada uma fica sob o ramo de que parte, com um recuo por etapa, como um índice: a etapa diz em que ordem validá-las, e um clique num cartão abre a MR no navegador.

A árvore de merge requests de um repositório: main, as suas MR recuadas e uma cadeia de três MR que partem umas das outras
!31 partiu de !28, e !35 de !31: cada uma fica sob aquela cujos commits transporta, com «após» e «destino main». O botão à direita faz o checkout do ramo; o visto marca main, onde se está.

Trocar com o repositório remoto

«Pull» e «Push», com o número de commits em jogo ao lado do rótulo — o zero não se escreve. Um ramo que ainda não existe do outro lado parte com o seu upstream. Os repositórios remotos declaram-se e retiram-se a partir do mesmo menu. Quando o servidor pede com que se autenticar, o Meneaufile pede-o por sua vez em vez de ficar bloqueado sem dizer nada.

Pôr de lado

«Stash…» arruma o trabalho em curso sem fazer commit, com uma descrição facultativa; «Stashes» — Trabalho guardado — lista o que aguarda, e daí retoma-se ou deita-se fora. «Tags…» põe e retira etiquetas da mesma forma.

Quem escreveu esta linha

«Anotações», no menu de um ficheiro, atribui cada linha ao seu commit e ao seu autor. É a pergunta que se faz perante uma linha surpreendente, e uma lista de commits não lhe responde.

Os conflitos

Um ficheiro em conflito abre-se sobre as suas versões: a versão comum, a nossa, a deles, e o resultado que se constrói. «Aceitar tudo» leva um lado inteiro, «Resolver» regista — e o ficheiro sai da categoria em conflito.

Clonar

A partir de uma pasta: o endereço (https://… ou git@host:org/repo.git), o nome da pasta a criar, e um histórico completo ou superficial — os últimos N commits.

Os bundles

Um ficheiro .bundle é um repositório Git embalado num único ficheiro: o bastante para levar um projeto numa pen, ou passá-lo a alguém, sem servidor. O duplo clique diz o que ele contém — os seus ramos, as suas tags — e Clonar aqui… faz dele um repositório comum, ao lado dele, sem rede. Num repositório, Criar um bundle… no menu do GIT embala-o inteiro na pasta da outra vista.

Se o git faltar

O Meneaufile chama o git do sistema. Ausente ou fora do PATH, di-lo em vez de falhar sem razão.

Manual do Meneaufile, em português.