Publicando com SSH.
authorThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Tue, 1 Jul 2014 11:13:00 +0000 (08:13 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@cascardo.eti.br>
Tue, 1 Jul 2014 11:13:00 +0000 (08:13 -0300)
Fazendo cópia via scp, a partir de um bare clone, ou fazendo push depois
de um bare init.

Colaborando_com_Git.mdwn

index 80ad818..373ff00 100644 (file)
@@ -257,6 +257,8 @@ Há várias formas de fazê-lo. Veremos aqui algumas delas, utilizando um
 host próprio, que seja acessível ao público alvo, através de SSH, HTTP
 ou git daemon.
 
 host próprio, que seja acessível ao público alvo, através de SSH, HTTP
 ou git daemon.
 
+### SSH
+
 Publicar através de SSH é simples de ser feito, mas tem algumas
 implicações. Entre elas é o acesso exigido a um shell no host para os
 usuários, dificultando acesso anônimo e criando um novo problema de
 Publicar através de SSH é simples de ser feito, mas tem algumas
 implicações. Entre elas é o acesso exigido a um shell no host para os
 usuários, dificultando acesso anônimo e criando um novo problema de
@@ -272,3 +274,31 @@ Uma excelente forma de utilizar a publicação via SSH é disponibilizá-la
 de forma somente leitura através de outros métodos, e ter um único
 usuário que possa atualizá-lo, o que resolve vários dos problemas já
 mencionados.
 de forma somente leitura através de outros métodos, e ter um único
 usuário que possa atualizá-lo, o que resolve vários dos problemas já
 mencionados.
+
+Há duas formas simples para publicar um repositório via SSH. Uma delas é
+criar um bare clone do repositório e fazer a cópia para o host remoto,
+através do método de preferência. Uma opção é scp.
+
+       $ git clone --bare project/
+       Cloning into bare repository 'project.git'...
+       done.
+       $ scp -rq project.git/ git.example.com:/srv/git/alice/
+       $ 
+
+A outra opção é criar um repositório bare no host remoto, e fazer o
+primeiro push.
+
+       alice@git.example.com $ mkdir project.git
+       alice@git.example.com $ cd project.git
+       alice@git.example.com project.git$ git init --bare
+       Initialized empty Git repository in /srv/git/alice/project.git/
+       alice@git.example.com project.git$ 
+       
+       ~/project$ git remote add origin git.example.com:/srv/git/alice/project.git/
+       ~/project$ git push origin master:master
+       Counting objects: 3, done.
+       Writing objects: 100% (3/3), 229 bytes, done.
+       Total 3 (delta 0), reused 0 (delta 0)
+       To git.example.com:/srv/git/alice/project.git/
+        * [new branch]      master -> master
+       ~/project$