Neste artigo, iremos ver como criar um repositório local, como criar as chaves SSH e como configurar um servidor remoto nas três plataformas mais conhecidas: GitHub, Bitbucket e GitLab, e como comunicar com esse servidor, de modo a poder ser efectuado um trabalho em equipa.
Criação de um repositório local
A primeira coisa a fazer para criar um repositório local, é acedermos à nossa homedir (directório principal) e criarmos uma pasta, que irá funcionar como o nosso repositório local, através dos comandos:
[fernandoprata@server1 ~]$ mkdir project
[fernandoprata@server1 ~]$ cd project
[fernandoprata@server1 ~]$ git init
Com estes comandos foi criada a pasta project onde vamos colocar os ficheiros do projecto e também a pasta especial .git, onde constará toda a informação mostrada em baixo, e que permitirá fazer o controle das versões do nosso projecto.
[fernandoprata@server1 project]$ ls -la .git
drwxrwxr-x 8 fernandoprata fernandoprata 4096 Jun 29 13:02 .
drwxrwxr-x 3 fernandoprata fernandoprata 4096 Jun 29 12:49 ..
drwxrwxr-x 2 fernandoprata fernandoprata 4096 Jun 29 12:48 branches
-rw-rw-r-- 1 fernandoprata fernandoprata 8 Jun 29 12:49 COMMIT_EDITMSG
-rw-rw-r-- 1 fernandoprata fernandoprata 203 Jun 29 13:02 config
-rw-rw-r-- 1 fernandoprata fernandoprata 73 Jun 29 12:48 description
-rw-rw-r-- 1 fernandoprata fernandoprata 23 Jun 29 12:48 HEAD
drwxrwxr-x 2 fernandoprata fernandoprata 4096 Jun 29 12:48 hooks
-rw-rw-r-- 1 fernandoprata fernandoprata 104 Jun 29 12:48 index
drwxrwxr-x 2 fernandoprata fernandoprata 4096 Jun 29 12:48 info
drwxrwxr-x 3 fernandoprata fernandoprata 4096 Jun 29 12:49 logs
drwxrwxr-x 7 fernandoprata fernandoprata 4096 Jun 29 12:49 objects
drwxrwxr-x 5 fernandoprata fernandoprata 4096 Jun 29 13:03 refs
Criação das chaves SSH
Para que o repositório local possa comunicar por SSH com o repositório geral (que receberá os contributos de todos os programadores), sem a necessidade da utilização constante de introduzir o utilizador/password, torna-se necessário efectuar a criação de duas chaves, uma pública que será inserida no servidor central (GitHub, GitLab, BitBucket, etc), e outra, privada, que ficará no repositório local. Para tal deve-se executar os seguintes comandos, substituindo o endereço email pelo seu.
cd ~
ssh-keygen -t rsa -b 4096 -C "endereço_email@gmail.com"
Carregue em ENTER, para aceitar o caminho por defeito.Generating public/private rsa key pair.
Enter file in which to save the key (/home/fernandoprata/.ssh/id_rsa):
Carregue em ENTER duas vezes
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Obterá a seguinte informação:
Your identification has been saved in /home/fernandoprata/.ssh/id_rsa.
Your public key has been saved in /home/fernandoprata/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:bvAKqLcRYajuuVtsG7YA……………………………………………..
The key's randomart image is:
+---[RSA 4096]----+
| .. |
| . o. |
|. oo o . |
|o.=.. . . |
|oo.. + S |
|o .o + = o |
| oo*. o .o |
|..B.+. +.E... |
|.++ . .oo*o |
+----[SHA256]-----+
Ao executar o comando seguinte, verá os ficheiros da chave privada e chave pública.
[fernandoprata@server1 .ssh]$ ls -la
drwx------ 2 fernandoprata fernandoprata 4096 Jun 29 16:03 .
drwx------ 10 fernandoprata fernandoprata 4096 Jun 29 12:49 ..
-rw------- 1 fernandoprata fernandoprata 3243 Jun 29 16:03 id_rsa
-rw-r--r-- 1 fernandoprata fernandoprata 749 Jun 29 16:03 id_rsa.pub
Criação do repositório central no GitHub
Vamos então simular que temos o repositório geral da equipa, no GitHub. Para tal vamos criar o repositório e instalar a chave do SSH, de modo a podermos comunicar a partir do nosso repositório local.
Para acedermos ao GitHub, torna-se necessário fazer o Sign Up, caso ainda não o tenhamos feito.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/git_1.png?resize=1024%2C500&ssl=1)
Após isso, acedemos à nossa página e criamos o repositório.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_2.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/b80c9c9d-64d2-4e5b-aeed-70d66574fbf2#media-blob-url=true&id=8f01f5eb-1ee3-44e1-8c31-cf5ba8c98637&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Github_2.png&size=98062&height=1080&width=1920&alt=)
Após criarmos o repositório central, devemos tomar nota do caminho do repositório, que iremos necessitar mais à frente.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_3.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/462e5ca3-2029-4df4-b30c-fe7b64788092#media-blob-url=true&id=a9967bb3-feb5-4cc6-8180-c1f2abe74441&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Github_3.png&size=126233&height=1080&width=1920&alt=)
Instalação das chaves SSH no GitHub
Seguidamente iremos instalar a chave pública no GitHub, de modo a podermos comunicar a partir do nosso repositório local. Para tal, vamos voltar ao nosso repositório e copiar a chave pública.
[fernandoprata@server1 .ssh]$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDasbnR2NhDug6T0Wf1N2e1WN0K7JF/3cWHtayMENolmN54eR4uPVYWlT//RmZY/4FpkvL+UK0IPUhsenz1HKiju2lIbbgaXq/auOj9VlyWMXldjVmxK5sQOWjkBtadV5OrdIqOfHkKdcm9ZHOhkx6U8ylBzjHGxbEqmdkyQMWfeeBRGq8VVDNKBNOXsIas2rRq4mYcIbOx3a/+oJMmwOLXpC8SxFR0S0mw+c8CAdbBHasGrwpcJRrCoz42NnVKjb461+/sFOEU68X15cQvwvmkuXjyBZZjyFt44WTxJ+bnVk0WuUkVxCGmwG3PHY6hv43MA2PHqvLBy2QqiPXmZz8MDO8yrbCcbH4xs5mtVAQR1iEB16PVYhcyncUIID9uxAU7YDAy9………………………
Voltamos ao GitHub e vamos à opção Settings / SSH and GPG keys
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_4.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/e3a0ce4d-dc9a-4926-9298-8c67985bc66c#media-blob-url=true&id=d0079e20-5d3b-422d-8f39-5666900774db&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Github_4.png&size=97728&height=1080&width=1920&alt=)
Vamos dar um clique em New SSH key e colamos a chave pública. Seguidamente, damos um clique em Add SSH key.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_5.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/1aa7a1bc-c5ab-464c-a1d3-fae767434029#media-blob-url=true&id=bd515c94-385a-4177-9cb7-eb0ef5e14ea7&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Github_5.png&size=194860&height=1080&width=1920&alt=)
ATENÇÃO: Mantenha a chave privada sempre num local seguro
Teste das chaves SSH
Vamos fazer o teste para verificar que a comunicação entre o repositório local e o servidor central estão a funcionar.
Vamos criar um ficheiro README, para fazer o teste.
[fernandoprata@server1 project]$ echo 'TODO: Add contents for README' > README
[fernandoprata@server1 project]$ ls
README
Vamos adicionar o servidor central à nossa configuração local, usando o caminho guardado anteriormente, através do comando:
[fernandoprata@server1 project]$ cd ~/project
[fernandoprata@server1 project]$ git remote add origin git@github.com:fernandoprata/project.git
Vamos ver o estado do nosso sistema, com o comando:
[fernandoprata@server1 project]$ git status -s
?? README
Vamos adicionar os ficheiros alterados, com o comando:
[fernandoprata@server1 project]$ git add .
Vamos verificar novamente o estado do sistema, com o comando:
[fernandoprata@server1 project]$ git status -s
A README
Vamos então fazer o primeiro “commit”, com o comando:
git commit -m 'Initial commit'
[master (root-commit) 7c7fe5e] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 README
Para vermos a informação do “commit”, usamos o comando:
git log
commit 7c7fe5ed6c0bb2350ace86f3aa45e57ca9df6919
Author: Fernando Prata fernandoprata@fpcti.pt
Date: Mon Jun 29 20:19:48 2020 +0100
Initial commit
Vamos, finalmente, actualizar o repositório central no GitHub, com o comando:
git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 242 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@github.com:fernandoprata/project.git
[new branch] master -> master
Verificação no GitHub
Para verificarmos se o repositório no GitHub foi actualizado, podemos aceder ao site:
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_6.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/b5655cdf-a7d4-469f-a9cf-0265ea78a341#media-blob-url=true&id=059c4a20-cf7c-4063-967d-e5701c69cde4&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Github_6.png&size=101121&height=1080&width=1920&alt=)
Criação do repositório central no Bitbucket
Vamos então simular que temos o repositório geral da equipa, no Bitbucket. Para tal vamos criar o repositório e instalar a chave do SSH, de modo a podermos comunicar a partir do nosso repositório local.
Para acedermos ao Bitbucket, torna-se necessário fazer o Sign Up, caso ainda não o tenhamos feito.
![](blob:https://fpcti.atlassian.net/a1ad6d62-4d39-4cf7-933c-8954bbb56247#media-blob-url=true&id=36ae0544-a9f1-4c91-bf16-cfd30e601e28&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Bitbucket_1.png&size=97385&height=720&width=1280&alt=)
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_7.png?resize=1024%2C576&ssl=1)
Após isso, acedemos à nossa página e criamos o repositório.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_8.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/b355ee9d-a45d-4677-a792-97fd6dca4bff#media-blob-url=true&id=3753156b-79be-4a1f-96e5-09337266e6ba&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Bitbucket_2.png&size=56635&height=1080&width=1920&alt=)
Após criarmos o repositório central, devemos tomar nota do caminho do repositório, que iremos necessitar mais à frente.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_9.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/4f5421b9-8a38-4905-8a9b-2adc6ce31b5c#media-blob-url=true&id=532d37ed-244c-42b2-8610-6715d5655891&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Bitbucket_3.png&size=128210&height=1080&width=1920&alt=)
Instalação das chaves SSH no Bitbucket
Seguidamente iremos instalar a chave pública no Bitbucket, de modo a podermos comunicar a partir do nosso repositório local. Para tal, vamos voltar ao nosso repositório e copiar a chave pública.
[fernandoprata@server1 .ssh]$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDasbnR2NhDug6T0Wf1N2e1WN0K7JF/3cWHtayMENolmN54eR4uPVYWlT//RmZY/4FpkvL+UK0IPUhsenz1HKiju2lIbbgaXq/auOj9VlyWMXldjVmxK5sQOWjkBtadV5OrdIqOfHkKdcm9ZHOhkx6U8ylBzjHGxbEqmdkyQMWfeeBRGq8VVDNKBNOXsIas2rRq4mYcIbOx3a/+oJMmwOLXpC8SxFR0S0mw+c8CAdbBHasGrwpcJRrCoz42NnVKjb461+/sFOEU68X15cQvwvmkuXjyBZZjyFt44WTxJ+bnVk0WuUkVxCGmwG3PHY6hv43MA2PHqvLBy2QqiPXmZz8MDO8yrbCcbH4xs5mtVAQR1iEB16PVYhcyncUIID9uxAU7YDAy9………………………
Voltamos ao Bitbucket e vamos à opção Personal Settings / SSH keys
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_10.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/c540b6e5-5549-4573-a90d-6249615cda17#media-blob-url=true&id=4eb935fb-5a26-49c8-ac84-d2f860ddd00a&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Bitbucket_4.png&size=110738&height=1080&width=1920&alt=)
Vamos dar um clique em Add key e colamos a chave pública. Seguidamente, damos um clique em Add key.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_11.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/da671d56-f724-4e28-8100-769b36ae0405#media-blob-url=true&id=34c84c71-83cc-49f1-9207-bed0d9951a29&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Bitbucket_5.png&size=173984&height=1080&width=1920&alt=)
ATENÇÃO: Mantenha a chave privada sempre num local seguro
Teste das chaves SSH
Vamos fazer o teste para verificar que a comunicação entre o repositório local e o servidor central estão a funcionar.
Vamos criar um ficheiro README, para fazer o teste.
[fernandoprata@server1 project]$ echo 'TODO: Add contents for README' > README
[fernandoprata@server1 project]$ ls
README
Vamos adicionar o servidor central à nossa configuração local, usando o caminho guardado anteriormente, através do comando:
[fernandoprata@server1 project]$ cd ~/project
[fernandoprata@server1 project]$ git remote add origin git@bitbucket.org:fernandoprata/project.git
Vamos actualizar o repositório central no Bitbucket.
[fernandoprata@server1 project]$ git push origin master
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (7/7), 611 bytes | 0 bytes/s, done.
Total 7 (delta 1), reused 0 (delta 0)
To git@bitbucket.org:fernandoprata/project.git
[new branch] master -> master
Verificação no Bitbucket
Para verificarmos se o repositório no Bitbucket foi actualizado, podemos aceder ao site:
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_11-1.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/742b5334-6cb2-4b71-94f6-646cf99d870e#media-blob-url=true&id=2ee0b823-2b2d-4dc4-8374-85e05fdf78b7&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Bitbucket_6.png&size=107661&height=1080&width=1920&alt=)
Criação do repositório central no GitLab
Vamos então simular que temos o repositório geral da equipa, no GitLab. Para tal vamos criar o repositório e instalar a chave do SSH, de modo a podermos comunicar a partir do nosso repositório local.
Para acedermos ao GitLab, torna-se necessário fazer o Sign Up, caso ainda não o tenhamos feito.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_12.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/980cf982-8a74-4567-ac27-71f88a8dec49#media-blob-url=true&id=254661de-c106-47e3-9f7a-990d1a3b3597&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Gitlab_1.png&size=92148&height=1080&width=1920&alt=)
Após isso, acedemos à nossa página e criamos o repositório.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_13.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/504aebee-faa8-4ab5-985c-9afe3ad8fa70#media-blob-url=true&id=428251bc-dfed-40ee-8a89-352f5aded08b&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Gitlab_2.png&size=168983&height=1080&width=1920&alt=)
Após criarmos o repositório central, devemos tomar nota do caminho do repositório, que iremos necessitar mais à frente.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_14.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/842f7675-29f5-4291-a825-5fb1c97883c5#media-blob-url=true&id=0ad0abfc-764b-4017-9f02-ddd3bb5864d6&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Gitlab_3.png&size=153873&height=1080&width=1920&alt=)
Instalação das chaves SSH no GitLab
Seguidamente iremos instalar a chave pública no GitLab, de modo a podermos comunicar a partir do nosso repositório local. Para tal, vamos voltar ao nosso repositório e copiar a chave pública.
[fernandoprata@server1 .ssh]$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDasbnR2NhDug6T0Wf1N2e1WN0K7JF/3cWHtayMENolmN54eR4uPVYWlT//RmZY/4FpkvL+UK0IPUhsenz1HKiju2lIbbgaXq/auOj9VlyWMXldjVmxK5sQOWjkBtadV5OrdIqOfHkKdcm9ZHOhkx6U8ylBzjHGxbEqmdkyQMWfeeBRGq8VVDNKBNOXsIas2rRq4mYcIbOx3a/+oJMmwOLXpC8SxFR0S0mw+c8CAdbBHasGrwpcJRrCoz42NnVKjb461+/sFOEU68X15cQvwvmkuXjyBZZjyFt44WTxJ+bnVk0WuUkVxCGmwG3PHY6hv43MA2PHqvLBy2QqiPXmZz8MDO8yrbCcbH4xs5mtVAQR1iEB16PVYhcyncUIID9uxAU7YDAy9………………………
Voltamos ao Gitlab e vamos à opção User Settings / SSH keys. Vamos colocar a chave pública e dar-lhe um nome. Seguidamente, damos um clique em Add key.
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_15.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/a2bcd69b-9bda-48db-aa47-6eb235d8bcae#media-blob-url=true&id=5d210247-45ad-4927-a086-8c7ef98c6f51&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Gitlab_5.png&size=209604&height=1080&width=1920&alt=)
Teste das chaves SSH
Vamos fazer o teste para verificar que a comunicação entre o repositório local e o servidor central estão a funcionar.
Vamos criar um ficheiro README, para fazer o teste.
[fernandoprata@server1 project]$ echo 'TODO: Add contents for README' > README
[fernandoprata@server1 project]$ ls
README
Vamos adicionar o servidor central à nossa configuração local, usando o caminho guardado anteriormente, através do comando:
[fernandoprata@server1 project]$ cd ~/project
[fernandoprata@server1 project]$ git remote add origin git@gitlab.com:fernandoprata/project.git
Vamos actualizar o repositório central no GitLab.
[fernandoprata@server1 project]$ git push origin master
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (7/7), 611 bytes | 0 bytes/s, done.
Total 7 (delta 1), reused 0 (delta 0)
To git@gitlab.com:fernandoprata/project.git
[new branch] master -> master
Verificação no GitLab
Para verificarmos se o repositório no GitLab foi actualizado, podemos aceder ao site:
![](https://i0.wp.com/bitsebytes.pt/wp-content/uploads/2022/02/GIT_16.png?resize=1024%2C576&ssl=1)
![](blob:https://fpcti.atlassian.net/037dcae7-4bcf-4492-bcb5-ed966fe82bdb#media-blob-url=true&id=8f09cfe3-0d4a-4117-a707-ddd17728d595&collection=contentId-52298262&contextId=52298262&mimeType=image%2Fpng&name=Gitlab_6.png&size=139142&height=1080&width=1920&alt=)
Comments 1