Quando se trata de alojamento Git, tem uma série de opções disponíveis. GitHub, Gitlab e Bitbucket são soluções populares, mas executar o seu próprio servidor Git é uma alternativa que vale a pena considerar.
Configurar um servidor Git permite-lhe criar repositórios privados sem as restrições dos planos gratuitos dos fornecedores.
Neste guia, explicaremos como configurar um servidor Git nu no Linux. Esta configuração é boa se tiver poucos repositórios e os colaboradores forem tecnologicamente experientes. Caso contrário, deverá considerar instalar uma aplicação de Git auto-hospedada como Gitea, Gogs , ou Gitlab .
O servidor Git pode ser configurado em qualquer máquina Linux remota ou mesmo no seu sistema local.
Configurar o servidor Git #
O primeiro passo é instalar Git no seu servidor.
Se estiver a utilizar Debian ou Ubuntu, actualize o índice de pacotes local e instale o git executando os seguintes comandos como sudo user:
sudo apt update && sudo apt install git
Para instalar o pacote git em servidores CentOS tipo:
sudo yum install git
Next, criar um novo utilizador que irá gerir os repositórios Git:
sudo useradd -r -m -U -d /home/git -s /bin/bash git
O directório home do utilizador está definido para /home/git
. Todos os repositórios serão armazenados sob este directório. Não definimos uma palavra-passe para o utilizador “git”, o login só será possível utilizando as chaves ssh.
Comutar para o utilizador “git” usando o su
comando:
sudo su - git
Executar os seguintes comandos para criar o directório SSH e definir as permissões correctas :
mkdir -p ~/.ssh && chmod 0700 ~/.ssh
Criar um ficheiro chamado que conterá as chaves SSH dos utilizadores autorizados:
touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys
É isso mesmo. A configuração do servidor está completa. Está agora pronto para criar o seu primeiro repositório Git.
Executar o seguinte comando para iniciar um novo repositório vazio:
git init --bare ~/projectname.git
P>P>Pode nomear o directório como quiser. O importante é criar o repositório sob o directório home do utilizador “git”.
Initialized empty Git repository in /home/git/projectname.git/
Configurando o Repositório Local de Git #
Para poder empurrar as alterações locais de git para o servidor de Git, você irá adicionar a chave pública do seu utilizador local SSH ao ficheiro do utilizador remoto “git” authorized_keys
.
Se já tiver um par de chaves SSH criado no seu sistema local, pode exibir a chave pública digitando:
cat ~/.ssh/id_rsa.pub
A saída deve ser algo parecido com o seguinte:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]
Se receber uma mensagem de erro a dizer No such file or directory
, significa que não tem um par de chaves SSH gerado na sua máquina local.
Para gerar um novo par de chaves SSH utilize o seguinte comando:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Copiar a saída do comando cat
acima e volte para a consola do servidor Git.
No servidor, abra o seu editor de texto e cole a chave pública que copiou da sua máquina local no ~/.ssh/authorized_keys
file:
sudo nano /home/git/.ssh/authorized_keys
Todo o texto da chave pública deve estar numa única linha.
P>Temos a assumir que o pacote Git já está instalado na sua máquina local. Caso contrário, instale-o da mesma forma como explicado nas secções anteriores.
Se tiver um projecto não versionado existente, navegue para o directório de projectos. Se estiver a começar do zero, crie o directório de projectos, e navegue até ele:
cd /path/to/local/project
Initialize um repositório git:
git init .
O último passo é adicionar o git remoto ao seu repositório local:
git remote add origin git@git_server_ip:projectname.git
Não se esqueça de substituir git_server_ip
pelo nome de anfitrião ou endereço IP do seu servidor Git.
Para verificar se tudo está configurado correctamente, crie um ficheiro de teste :
touch test_file
Adicionar as alterações à área de encenação:
git add .
Comprometer as alterações:
git commit -m "descriptive message"
P>Enviar as alterações do repositório local para um repositório remoto:
git push -u origin master
Se tudo estiver configurado correctamente, a saída deve ter o seguinte aspecto:
Para adicionar um novo colaborador, basta copiar a sua chave SSH pública para o ficheiro “git” do utilizador .
P>Pode usar os mesmos passos para criar novos repositórios. É importante notar que o repositório remoto deve existir antes de adicionar o git remoto ao seu repositório local.
Conclusion #
Neste tutorial, mostramos-lhe como configurar o seu próprio servidor privado de Git e criar repositórios.