Como instalar e configurar o Git em Ubuntu 22.04?
Instalar e configurar o Git em Ubuntu 22.04
Objetivo
O Git é um dos mais famosos sistemas de controle de versões (VCS) do mundo. A sua adoção alargada nos últimos anos torna-o numa ferramenta inevitável no mundo do desenvolvimento.
Neste tutorial, descobrirá como instalar e configurar o Git na distribuição Linux Ubuntu 22.04.
Requisitos
Este tutorial parte do princípio de que dispõe de um Ubuntu 22.04, a correr numa instância de computação OVHcloud, por exemplo. Alguns conhecimentos básicos sobre o seu funcionamento são também necessários. Se não tiver o Ubuntu 22.04, siga este guia para utilizar uma Instância de Computação OVHcloud.
Instruções
Neste tutorial, irá instalar o Git, configurá-lo e aprender a assinar os seus commits.
Aquando da redação deste tutorial, a última versão LTS do Git é a 2.36.1.
Instalação do Git LTS
A forma mais fácil de instalar o Git em Ubuntu é usar o comando apt-get.
Para ter a versão LTS mais recente, necessita de adicionar um repositório:
sudo add-apt-repository ppa:git-core/ppa
O resultado deve ser o seguinte:
$ sudo add-apt-repository ppa:git-core/ppa PPA publishes dbgsym, you may need to include 'main/debug' component Repository: 'deb https://ppa.launchpadcontent.net/git-core/ppa/ubuntu/ jammy main' Description: The most current stable version of Git for Ubuntu. For release candidates, go to https://launchpad.net/~git-core/+archive/candidate . More info: https://launchpad.net/~git-core/+archive/ubuntu/ppa Adding repository. Press [ENTER] to continue or Ctrl-c to cancel. Found existing deb entry in /etc/apt/sources.list.d/git-core-ubuntu-ppa-jammy.list Adding deb entry to /etc/apt/sources.list.d/git-core-ubuntu-ppa-jammy.list Found existing deb-src entry in /etc/apt/sources.list.d/git-core-ubuntu-ppa-jammy.list Adding disabled deb-src entry to /etc/apt/sources.list.d/git-core-ubuntu-ppa-jammy.list Adding key to /etc/apt/trusted.gpg.d/git-core-ubuntu-ppa.gpg with fingerprint E1DD270288B4E6030699E45FA1715D88E1DF1F24 Hit:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates InRelease Get:3 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB] Ign:4 https://pkg.jenkins.io/debian-stable binary/ InRelease Hit:5 https://pkg.jenkins.io/debian-stable binary/ Release Hit:6 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease Hit:7 http://security.ubuntu.com/ubuntu jammy-security InRelease Fetched 99.8 kB in 1s (112 kB/s) Reading package lists... Done
Em seguida, instale o Git com o comando apt-get:
sudo apt-get update && sudo apt-get -y install git
O resultado deve ser o seguinte:
$ sudo apt-get update && sudo apt-get -y install git Hit:1 http://nova.clouds.archive.ubuntu.com/ubuntu jammy InRelease Hit:2 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-updates InRelease Hit:3 http://security.ubuntu.com/ubuntu jammy-security InRelease Get:4 http://nova.clouds.archive.ubuntu.com/ubuntu jammy-backports InRelease [99.8 kB] Hit:5 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy InRelease Ign:6 https://pkg.jenkins.io/debian-stable binary/ InRelease Hit:7 https://pkg.jenkins.io/debian-stable binary/ Release Fetched 99.8 kB in 1s (113 kB/s) Reading package lists... Done Reading package lists... Done Building dependency tree... Done Reading state information... Done The following additional packages will be installed: git-man Suggested packages: git-daemon-run | git-daemon-sysvinit git-doc git-email git-gui gitk gitweb git-cvs git-mediawiki git-svn The following packages will be upgraded: git git-man 2 upgraded, 0 newly installed, 0 to remove and 27 not upgraded. Need to get 7700 kB of archives. After this operation, 8810 kB of additional disk space will be used. Get:1 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main amd64 git amd64 1:2.36.1-0ppa1~ubuntu22.04.1 [5768 kB] Get:2 https://ppa.launchpadcontent.net/git-core/ppa/ubuntu jammy/main amd64 git-man all 1:2.36.1-0ppa1~ubuntu22.04.1 [1933 kB] Fetched 7700 kB in 0s (22.9 MB/s) (Reading database ... 131441 files and directories currently installed.) Preparing to unpack .../git_1%3a2.36.1-0ppa1~ubuntu22.04.1_amd64.deb ... Unpacking git (1:2.36.1-0ppa1~ubuntu22.04.1) over (1:2.34.1-1ubuntu1.2) ... Preparing to unpack .../git-man_1%3a2.36.1-0ppa1~ubuntu22.04.1_all.deb ... Unpacking git-man (1:2.36.1-0ppa1~ubuntu22.04.1) over (1:2.34.1-1ubuntu1.2) ... Setting up git-man (1:2.36.1-0ppa1~ubuntu22.04.1) ... Setting up git (1:2.36.1-0ppa1~ubuntu22.04.1) ... Processing triggers for man-db (2.10.2-1) ... Scanning processes... Scanning candidates... Scanning linux images... Restarting services... systemctl restart irqbalance.service jenkins.service packagekit.service polkit.service postgresql@14-main.service qemu-guest-agent.service ssh.service udisks2.service Service restarts being deferred: systemctl restart ModemManager.service systemctl restart networkd-dispatcher.service systemctl restart systemd-logind.service systemctl restart unattended-upgrades.service No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host.
Em seguida, pode testar a nova instalação e visualizar a versão do Git:
git --version
O resultado deve ser o seguinte:
$ git --version git version 2.36.1
Configuração básica: nome e e-mail
Uma vez que o Git está instalado, é aconselhável configurar alguns elementos. Mais concretamente a parte da identificação que será «anexada» durante os commits. Para não ter de fazer esta configuração em cada repositório, é possível fazê-la de forma global graças a um ficheiro .gitconfig na raiz do utilizador home.
É possível criar este ficheiro manualmente ou através da opção config do comando git:
git config --global user.name "Firstname Lastname" git config --global user.email "firstname.lastname@mail.com"
Depois, pode visualizar o seu ficheiro .gitconfig no seu diretório home:
cat .gitconfig
O resultado deve ser o seguinte:
$ cat .gitconfig [user] name = Firstname Lastname email = firstname.lastname@mail.com
Configuração avançada: commits assinados
É fortemente recomendado que assine os seus commits. A principal razão para tal é ter a certeza de que é realmente o proprietário dos commits, e que não é alguém a fazer-se passar por si. Como já viu antes, o nome e o e-mail são legíveis por todos em repositórios remotos como o GitHub ou o GitLab, por exemplo. Qualquer pessoa pode introduzir as mesmas definições e fazer-se passar por si.
Todos os comandos utilizarão o utilitário gpg, já instalado no Ubuntu.
O primeiro passo consiste em gerar a chave:
gpg --generate-key
O resultado deve ser o seguinte:
$ gpg --generate-key gpg (GnuPG) 2.2.27; Copyright (C) 2021 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Note: Use "gpg --full-generate-key" for a full featured key generation dialog. GnuPG needs to construct a user ID to identify your key. Real name: Firstname Lastname Email address: firstname.lastname@email.com You selected this USER-ID: "Firstname Lastname " Change (N)ame, (E)mail, or (O)kay/(Q)uit? O We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. gpg: key BECE6D85FDA1B6C8 marked as ultimately trusted gpg: directory '/home/ubuntu/.gnupg/openpgp-revocs.d' created gpg: revocation certificate stored as '/home/ubuntu/.gnupg/openpgp-revocs.d/18E345A3F27325A8B4816875BECE6D85FDA1B6C8.rev' public and secret key created and signed. pub rsa3072 2022-06-17 [SC] 18E345A3F27325A8B4816875BECE6D85FDA1B6C8 uid Firstname Lastname sub rsa3072 2022-06-17 [E]
Em seguida, verifique a chave criada:
gpg --list-secret-keys --keyid-format=long
O resultado deve ser o seguinte:
$ gpg --list-secret-keys --keyid-format=long gpg: checking the trustdb gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2024-06-16 /home/ubuntu/.gnupg/pubring.kbx ------------------------------- sec rsa3072/ABCDEFGHIJKLMNOP 2022-06-17 [SC] SSSSSSSSSSSSSSSSSSSSSSSSABCDEFGHIJKLMNOP uid [ultimate] Firstname Lastname ssb rsa3072/ZZZZZZZZZZZZZZZZ 2022-06-17 [E]
Depois, adicione a chave à sua configuração Git no ficheiro .gitconfig do seu repositório home:
git config --global commit.gpgsign true git config --global gpg.program gpg git config --global user.signingkey ABCDEFGHIJKLMNOP
Por último, deve extrair e copiar a sua chave para o seu fornecedor Git à distância (GitLab, GitHub, MasBucket, etc.):
gpg --armor --export ABCDEFGHIJKLMNOP
O resultado deve ser o seguinte:
$ gpg --armor --export ABCDEFGHIJKLMNOP -----BEGIN PGP PUBLIC KEY BLOCK----- TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4g SW4gYmliZW5kdW0gaGVuZHJlcml0IG5pYmggaWQgZ3JhdmlkYS4gUGhhc2VsbHVzIG5lYyBhbGlx dWFtIG1hc3NhLCBmcmluZ2lsbGEgc29sbGljaXR1ZGluIG1ldHVzLiBQaGFzZWxsdXMgc2l0IGFt ZXQgdGluY2lkdW50IG9yY2kuIERvbmVjIHF1aXMgdml2ZXJyYSBsaWd1bGEuIE5hbSBwaGFyZXRy YSBlbGl0IGV4LCBzaXQgYW1ldCB0aW5jaWR1bnQgbmliaCB0ZW1wb3IgdmVsLiBOdWxsYSBzZW1w ZXIgcGxhY2VyYXQgZGlhbSBzaXQgYW1ldCB2YXJpdXMuIFN1c3BlbmRpc3NlIHRyaXN0aXF1ZSBl Z2V0IGxvcmVtIGV1IHBsYWNlcmF0LiBOdW5jIGlhY3VsaXMgbnVuYyBldCBuZXF1ZSBlZmZpY2l0 dXIgZnJpbmdpbGxhLiBWZXN0aWJ1bHVtIG1vbGxpcyBldWlzbW9kIG1hZ25hIHNpdCBhbWV0IGlu dGVyZHVtLiBQZWxsZW50ZXNxdWUgaW1wZXJkaWV0IGxvcmVtIG51bGxhbS4g -----END PGP PUBLIC KEY BLOCK-----
Já está! Instalou e configurou com sucesso o Git no Ubuntu 22.04.
Ir mais longe
Consulte as ofertas de instâncias Public Cloud na OVHcloud.