Publicando com SSH.
[cursogit.git] / 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.
 
+### 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
@@ -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.
+
+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$