site-courses

Formas de interagir com Git:

Git é um sistema seguro e distribuído

Para entendermos o porquê de ser seguro e distribuído, precisamos entender o funcionamento por debaixo dos panos. Precisamos entender como os arquivos são manipulados pelo Git. Git usa o algoritmo de Hash Seguro SHA1 (Secure Hash Algorithm) para encriptar os arquivos.

Encriptação com o sha1

O algoritmo Sha1 embaralha o dado de uma forma muito especifica. Essa encriptação gera (output) um conjunto ÚNICO de caracteres identificador de 40 digitos. A grosso modo este identificador é uma forma curta de representar um estado de um arquivo.

Podemos observar, que nos dois exemplos, o output diferente, pois a entrada não está exatamente igual. No segundo comando, adicionamos o ponto-final.

Podemos observar, que o output gerado com o Git é diferente do output gerado sem o Git. Isso acontece porque o Git manipula dados através de objetos. Esses objetos possuem metadados. Então o Git junta o DADO + METADADO para encriptar.

Podemos observar, que nos dois últimos exemplos, o output é igual, pois adaptamos para encriptar do mesmo modo que o Git faz.

Objetos internos

Os três tipos básicos de objetos responsáveis pelo versionamento (Blob, Tree, Commit). O Git usa objetos e dentro destes objetos ele armazena os dados e os metadados.

OBS: A minima alteração em um arquivo irá modificar toda a estrutura relacionada aquele objeto.

Ciclo de Vida dos Arquivos

Ambientes (GIT tem uma versão no servidor e as versões locais)

Por isso Git é considerado um sistema distribuído.

Comunicação e Autenticação

Ao contrário do Token, este modo não ficará solicitando as credenciais a cada operação.

O token será visualizado somente no momento da geração, portanto, deve ser copiado e armazenado em local seguro para posterior utilização. Ao contrário do SSH, este modo ficará solicitando as credenciais (usuário e token) a cada operação.